问题描述
Listview展示数据,如果后台返回的数据中包含有文件,则在item的里加载一个本地图片,如果没有文件,则不显示图片。但是在快速的滑动过程中,会出现图片错位的问题。 就是不包含文件的item的前面也会显示一个本地图片。请问这个该如何处理? 已使用convertView.setTag(viewHolder) 和 viewHolder = (ViewHolder) convertView.getTag() 。
问题解答
回答1:ListView里异步加载图片时可能会出现这个问题。可以看看这篇博客:http://www.trinea.cn/android/android-listview-display-error-image-when-scroll/
你要补全if (list... != 0)的判断,在else里把ImageView的图片还原置空。因为viewHoder里取出来的可能是重复利用的imageView,而刚好这个imageView恰好是你上次设置过图片的。
注意:在使用ViewHolder的时候要千万注意重置View的状态,因为获取到的View很可能是上一个状态和你当前所需要的状态不符合。
回答2:Android 的官方网站上有关于这个的讲解,你可以去看看。你的图片不是用从网络获取的,正常使用不应该出现混乱,在getView里面初始化每个条目。
回答3:把else补上,设为空图片就行了,你不处理,系统默认重用之前的布局东西。