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的图片还原置空。因为viewHoder里取出来的可能是重复利用的imageView,而刚好这个imageView恰好是你上次设置过图片的。
if (list... != 0)
else
ImageView
viewHoder
imageView
注意:在使用ViewHolder的时候要千万注意重置View的状态,因为获取到的View很可能是上一个状态和你当前所需要的状态不符合。
ViewHolder
View
Android 的官方网站上有关于这个的讲解,你可以去看看。你的图片不是用从网络获取的,正常使用不应该出现混乱,在getView里面初始化每个条目。
getView
把else补上,设为空图片就行了,你不处理,系统默认重用之前的布局东西。
ListView里异步加载图片时可能会出现这个问题。可以看看这篇博客:
http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
你要补全
if (list... != 0)
的判断,在else
里把ImageView
的图片还原置空。因为
viewHoder
里取出来的可能是重复利用的imageView
,而刚好这个imageView
恰好是你上次设置过图片的。注意:在使用
ViewHolder
的时候要千万注意重置View
的状态,因为获取到的View
很可能是上一个状态和你当前所需要的状态不符合。Android 的官方网站上有关于这个的讲解,你可以去看看。
你的图片不是用从网络获取的,正常使用不应该出现混乱,在
getView
里面初始化每个条目。把else补上,设为空图片就行了,你不处理,系统默认重用之前的布局东西。