Recyclerview NetworkImageView(凌空)没有显示出来

时间:2016-12-01 16:46:11

标签: android android-recyclerview android-volley networkimageview

我正在使用RecyclerView和凌空的NetworkImageView来渲染图像。视图由作者图像,一些文本字段和图片组成。以下是填充视图的代码段:

// vh is the viewholder    
vh.picture.setDefaultImageResId(R.drawable.default_image);
vh.picture.setImageUrl(post.getImageUrl(), mImageLoader);

我面临的问题是当滚动时,说出20张图像,大多数是~18出现。我从日志中看到所有图像都已下载并位于缓存中,但有些图像未呈现。甚至不会为这些视图显示默认图像。如果视图无效(再次向上和向下滚动),则会显示图像。

有趣的是,对于没有显示图片的视图,即使我可以在其上方的帖子中看到同一作者图片,也不会显示作者图片。就像整个视图在显示图像时出现问题一样。

下载图片后,有没有办法在invalidate()上手动拨打postInvalidate()NetworkImageView?还是其他任何想法?

1 个答案:

答案 0 :(得分:0)

还问了here。我终于通过不使用NetworkImageView解决了这个问题。我开始使用regualar ImageView,仍然通过自定义图像请求和onResponse()应用图像在视图上获取图像。这看起来效果很好。

    public void getImage(String url, final ImageView v) {
    if (TextUtils.isEmpty(url)) return; // don't fetch a null url

    ImageRequest imageRequest = new ImageRequest(url, new Response.Listener<Bitmap>() {
        @Override
        public void onResponse(Bitmap response) {
            v.setImageBitmap(response);
        }
    }, 0, 0, null, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e(TAG, "Error- " + error.getMessage());
        }
    });

    mRequestQueue.addToRequestQueue(imageRequest);
}