2015-02-06 102 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