2015-02-06 103 views
2

每当在recyclerview中更新图像列表时,会出现轻微的图像闪烁,我在GridView中遇到了同样的问题,这是通过在持有者中设置图像url标签来解决的,Android图像在recyclerview中的图像闪烁

//for solving image flicker 
if(contentViewHolder.ivPhoto.getTag()==null || (!contentViewHolder.ivPhoto.getTag().equals(currentMoment.getThumbnailUrl()))){ 
      mImageLoader.displayImage(currentMoment.getThumbnailUrl(), contentViewHolder.ivPhoto); 
     } 

     contentViewHolder.ivPhoto.setTag(currentMoment.getThumbnailUrl()); 

这在gridview中效果很好,但它不能解决在recyclerview情况下的图像闪烁,任何人都可以建议我如何在recyclerview中停止图像闪烁?

+0

我也有这个问题。它似乎已经与RecyclerView重新出现了。当调用notifyDataSetChanged()时,即使显示的数据没有改变,屏幕也会闪烁。其他,pre-recyclerview,使用ViewHolder的解决方案列表(RecyclerView需要)和稳定ID(没有任何影响)。 – lilbyrdie 2015-08-14 16:20:24

+1

是的,还没有找到解决方案,请通知我,如果你找到任何解决方案。 – 2015-08-17 06:24:33

+0

似乎在notifyDataSetChanged()中,所有视图都被回收...但它们不使用当时显示的视图,所以数据都必须更新...并重新加载图像。即使图像被缓存,当整个屏幕刷新时仍然有闪烁...不确定究竟是什么造成了它,或者如果它只是一个内部问题。 – lilbyrdie 2015-08-17 16:04:26

回答

1

可能由另一个视图被回收引起。

尝试用setImageDrawable(null)之类的东西重置视图的onBindViewHolder()的开始;

+0

我没有明白你的意思。是不是重新认为闪烁背后的原因? – 2015-03-03 12:28:41

+0

闪烁可能来自包含以前图像的回收视图。然后使用mImageLoader.displayImage异步加载新图像。因此,请立即删除以前的图像,新的图像将加载到一个空的视图 – 2015-03-05 21:42:05

+0

我只想在特定位置的视图中的图像的URL更改时加载新图像,每次重新加载它失败的目的 – 2015-03-10 10:52:28