zoukankan      html  css  js  c++  java
  • 解决adapter中使用ViewHolder出现重复加载的问题

       Map<Integer, View> map = new HashMap<Integer, View>();
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View view;
            ViewHolder viewHolder = null;
            if (map.get(position) == null) {
                viewHolder = new ViewHolder();
                view = View.inflate(context, R.layout.setting_item, null);
                viewHolder.portrait = (ImageView) view.findViewById(R.id.portrait);
                viewHolder.divider = (View) view.findViewById(R.id.divider);
                viewHolder.text = (TextView) view.findViewById(R.id.tv_item_name);
                viewHolder.more = (ImageView) view.findViewById(R.id.set_more);
                map.put(position, view);
                view.setTag(viewHolder);
            } else {
                view = map.get(position);
                viewHolder = (ViewHolder) view.getTag();
            }
            if (position == 0) {
                viewHolder.portrait.setVisibility(ImageView.VISIBLE);
            }
            if (position == 4 || position == 5) {
                viewHolder.more.setImageResource(R.drawable.ok_icon);
            }
            if (position == 2 || position == 5) {
                viewHolder.divider.setVisibility(View.VISIBLE);
            }
            viewHolder.text.setText((String) itemList.get("name" + position));
    
            return view;
        }
    
        private class ViewHolder {
            private TextView text;
            private ImageView portrait;
            private View divider;
            private ImageView more;
        }
  • 相关阅读:
    中美土味摄影联合展览4.0
    计算机系统漫游
    Python连接Redis连接配置
    对kotlin和java中的synchronized的浅谈
    不务正业
    功能性测试分类
    Golang os/exec 实现
    面试研究所
    operator和if结构
    Mechanism for self refresh during C0
  • 原文地址:https://www.cnblogs.com/bianmajiang/p/4031809.html
Copyright © 2011-2022 走看看