Listview展示数据,如果后台返回的数据中包含有文件,则在item的里加载一个本地图片,如果没有文件,则不显示图片。但是在快速的滑动过程中,会出现图片错位的问题。 就是不包含文件的item的前面也会显示一个本地图片。请问这个该如何处理? 已使用convertView.setTag(viewHolder) 和 viewHolder = (ViewHolder) convertView.getTag() 。
人生最曼妙的风景,竟是内心的淡定与从容!
ListView裡非同步載入圖片時可能會出現這個問題。可以看看這篇部落格:http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
你要補全if (list... != 0)的判斷,在else裡把ImageView的圖片還原置空。 if (list... != 0)的判断,在else里把ImageView的图片还原置空。因为viewHoder里取出来的可能是重复利用的imageView,而刚好这个imageView恰好是你上次设置过图片的。
if (list... != 0)
else
ImageView
viewHoder
imageView
注意:在使用ViewHolder的时候要千万注意重置View的状态,因为获取到的View因為viewHoder裡取出來的可能是重複利用的imageView,而剛好這個imageView剛好是你上次設定過圖片的。
ViewHolder
View
Android 的官方網站上有關於這個的講解,你可以去看看。 你的圖片不是用從網路取得的,正常使用不應該出現混亂,在getView裡面初始化每個條目。
getView
把else補上,設為空白圖片就行了,你不處理,系統預設重用之前的佈局東西。
ListView裡非同步載入圖片時可能會出現這個問題。可以看看這篇部落格:
http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
你要補全
if (list... != 0)
的判斷,在else
裡把ImageView
的圖片還原置空。if (list... != 0)
的判断,在else
里把ImageView
的图片还原置空。因为
viewHoder
里取出来的可能是重复利用的imageView
,而刚好这个imageView
恰好是你上次设置过图片的。注意:在使用
#🎜🎜#注意:在使用ViewHolder
的时候要千万注意重置View
的状态,因为获取到的View
因為viewHoder
裡取出來的可能是重複利用的imageView
,而剛好這個imageView
剛好是你上次設定過圖片的。ViewHolder
的時候要千萬注意重置View
的狀態,因為取得到的View
很可能是上一個狀態和你目前所需的狀態不符合。 #🎜🎜#Android 的官方網站上有關於這個的講解,你可以去看看。
你的圖片不是用從網路取得的,正常使用不應該出現混亂,在
getView
裡面初始化每個條目。把else補上,設為空白圖片就行了,你不處理,系統預設重用之前的佈局東西。