您的位置:首页 > 移动开发 > Android开发

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

2015-08-19 19:10 375 查看
当我们使用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滑动时数据重复错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息