ListView 滑动时数据重复错位解决

当我们使用Listview 列表显示数据稍多些进行滑动浏览时,图片或者其他数据出现了错位或重复。遇到这样问题,我们不必在单独给某一个ImageView控件去setTag(),我们使用HashMap来解决问题。(ListView  volleyImageLoader 加载图片重复也可以试试)

HashMap根据position存储item对应的view  ,然后在从map中取view使用。如何写,如下操作

1.定义Map(写在自定义适配器类中)

 Map<Integer,View> map = new HashMap<Integer,View>();  // key :position     value  :item view

2.map存储值及使用(写在自定义适配器类中getView())

 public View getView(int position, View convertView, ViewGroup parent) {

ViewHolder holder;

       if(map.get(position) == null){  // 判断position对应view是否为空

holder = new ViewHolder();

convertView = View.inflater(context,R.layout.textlayout,null);

holder.v = (ImageView)convertView.findView(R.id.v);

map.put(position,convertView); // 将convertView 存入map

convertView.setTag(holder);

       }else{

convertView = map.get(position);  // 从map中取出view

holder = (ViewHolder)convertView.getTag();

       }

       return convertView;

}

   

   以上代码编写就可以解决ListView滑动时数据重复错误。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值