BaseAdapterでのConverViewの役割とListViewの最適化

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

ListViewの各アイテムはビューです。アイテムが表示領域からスライドすると、このアイテムに対応するビューがリサイクルされます。このビューは変換ビューです。変換ビューが適用されない場合は、アイテムがから削除されるたびにscreen、新しいビューがアイテムに追加され、オーバーヘッドが増加するため、converviewはそれらの新しく存在するアイテムを再利用できます。
最適化に関して、各アイテムのレイアウトが非常に複雑な場合、findViewByIdを介してコントロールを見つけると、間違いなくシステムオーバーヘッドが増加します。タグを参照し、getTagを使用してバインドされたViewHolderオブジェクトを取得することにより、ViewHolderオブジェクトはコントロールをレイアウトに格納します。重度のスクリーニングを回避し、効率を向上させるために、ViewHolderControlsによって選択されました。
言うまでも
ありませんが、コード:プライベートクラス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画像;
TextViewタイトル;
}
}

おすすめ

転載: blog.csdn.net/skateboard1/article/details/44514465