您的位置:首页 > 其它

解决ListView上拉加载更多图片会闪的问题

2016-02-26 17:07 363 查看
ListView上拉加载更多数据源的时候我们会调用
/**
* 更新adapter数据
*
* @param datas
*/
public void addDatas(List<Hdata> datas) {
this.datas.addAll(datas);
this.notifyDataSetChanged();
}

来更新数据源,但是notifyDataSetChanged()这个方法他会把ListView的Item的数据会重置一次,导致图片会重新填充一次导致出现闪烁现在,

影响体验。

解决办法是:

final Hdata data = datas.get(position);
if(data.fcover.equals(holder.iv_house.getTag())){

}else{
loader.loadBitmap(data.fcover,
new LoadListViewCompleteListener() {

@Override
public void complete(Bitmap bitmap, ListView listView) {
ImageView imageView = (ImageView) listView
.findViewWithTag(data.fcover);
if(imageView != null){
imageView.setImageBitmap(bitmap);
}
}
}, listView);
holder.iv_house.setTag(data.fcover);
}
上面那个判断语句是判断当前ListView可视的每个Item的的imageView的tag是否于数据源在该位置的url一致(Imageview的setTag是根据url来set的),

如果一致,说明该imageView已经加载过,不需要重新加载一次,只加载新的数据,就能解决闪烁的问题了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: