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

来源:互联网 发布:房租占收入比例 知乎 编辑:程序博客网 时间:2024/05/10 19:56

当我们使用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滑动时数据重复错误。


0 0