close
Android listview 因為會自動回收已經滑出螢幕外的list item view(convertView),並將之用來替代於滑入螢幕的view
因此當我們想用圖片緩存技術時,就會就成顯示錯亂問題。
可以先用幾種方式檢查是哪種問題:
1. 是否往下滑出的item view會出現在由上滑入的item中。是 -> item view回收機制問題,要加以記錄,用holder或tag等方式。
2. 是否在圖片還在讀取時滑動,會導致圖片重複(原本應該要是顯示A圖 B圖 滑動後變成 B圖 B圖)。 是 -> 因為採用非同步的圖片加載方式(若採用同步的圖片加載方式不會有此問題,但是會很卡),這種情況很少出現,通常都是程式碼出了大問題(holder使用方法錯誤,緩存方式錯誤)。
3. 是否在圖片還在讀取時滑動,會導致圖片位置大錯亂。 是 -> 因為採用非同步的圖片加載方式,當圖片加載完時原來的item view已被回收給新的item使用,因此圖片被加載到新的item導致錯亂。用tag紀錄來解決(通常是紀錄圖片路徑,因為具有唯一性)。
詳細的程式碼範例可參考此網頁:
http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
全站熱搜