Роль ConverView в BaseAdapter и оптимизация ListView

    BaseAdapter中的ConverView的作用和ListView的优化

Каждый элемент в ListView является представлением. Когда элемент выходит из видимой области, представление, соответствующее этому элементу, будет переработано. Это представление является преобразованным. Если преобразование не применимо, каждый раз, когда элемент удаляется из screen, к элементу добавляется новое представление, что увеличивает накладные расходы, поэтому преобразование может повторно использовать эти новые существующие элементы.
Что касается оптимизации, если макет каждого элемента очень сложен, поиск элемента управления с помощью findViewById, несомненно, увеличит системные издержки. Ссылаясь на тег и используя getTag для получения привязанного объекта ViewHolder, объект ViewHolder сохраняет элементы управления в макете и является выбирается ViewHolder Controls, чтобы избежать тяжелого растрирования и повысить эффективность. Нечего и
говорить, код:
частный класс MyAdapter расширяет BaseAdapter {

    @Override
    public int getCount()
    {
        return list.size();
    }

    @Override
    public Object getItem(int position)
    {
        return position;
    }

    @Override
    public long getItemId(int position)
    {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {   ViewHolder viewHolder;
        LayoutInflater inflater=LayoutInflater.from(getActivity());
        if(convertView==null){
            viewHolder=new ViewHolder();
            convertView =inflater.inflate(R.layout.listitem,null);
            viewHolder.picture=(ImageView)convertView.findViewById(R.id.thumbnail);
            viewHolder.title=(TextView)convertView.findViewById(R.id.title);
            convertView.setTag(viewHolder);
        }
        else{
            viewHolder=(ViewHolder)convertView.getTag();
        }
        viewHolder.picture.setImageBitmap((Bitmap)list.get(position).get("thumbNail"));
        viewHolder.title.setText((String)list.get(position).get("title"));
        return convertView;
    }
}

частный класс ViewHolder {
ImageView picture;
Заголовок TextView;
}
}

рекомендация

отblog.csdn.net/skateboard1/article/details/44514465
рекомендация