0

それは非常に奇妙ですが、本当です。リストのパフォーマンスを向上させるために ViewHolder パターンを使用しています。getView() メソッドにはビットマップがありますが、以下のコードはリストビュー アイテムのイメージビューでビットマップをレンダリングできません。

if (convertView == null) {
    convertView = layoutInflater.inflate(R.layout.item_view_contact_item, null);
    viewHolder = new ViewHolder(convertView);
    convertView.setTag(viewHolder);
} else {
    viewHolder = (ViewHolder) convertView.
}

上記は、リスト行のイメージビューでビットマップをレンダリングできません。しかし、以下のコードは

//if(convertView == null) {
    convertView = layoutInflater.inflate(R.layout.item_view_contact_item, null);
    viewHolder = new ViewHolder(convertView);
    convertView.setTag(viewHolder);
//} else {
//    viewHolder = (ViewHolder) convertView.
//}

この場合、すべて(検索、イメージビューへのビットマップの割り当て)は正常に機能します。しかし、レイアウトのインフレーションが毎回発生するため、これはリストのパフォーマンスの低下につながります。

親切に助けてください。

注: 別の AsyncTask でビットマップをダウンロードし、最初にアダプターに渡される arraylist に割り当てます。

4

0 に答える 0