多くの画像で stickyheaders gridview を使用しており、ヘッダーはテキストです。画面には常に 10 ~ 20 枚の画像が表示されます。ビューホルダー パターンを使用してセルを再利用しています。
しかし、多くの場合、セルは再利用されません。なぜでしょうか? さらに、各セルが 2 回呼び出される - なぜですか?
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
Photo photo = getItem(position);
ViewHolder viewHolder = null;
if (convertView == null ) {
Log.d(TAG, "convertview is null :"+position);
convertView = mInflater.inflate(R.layout.item_photo_grid, parent, false);
viewHolder = new ViewHolder();
viewHolder.imageView = (ImageView) convertView.findViewById(R.id.photo);
viewHolder.selected = convertView.findViewById(R.id.selected);
convertView.setTag(viewHolder);
}
else {
Log.d(TAG, "convertview is resused :"+position);
viewHolder = (ViewHolder) convertView.getTag();
}
frameLoader.pauseOnFling(isFlinging);
frameLoader.pauseOnScroll(isScrolling);
frameLoader.setMaxItems(getVisiblePhotoCount());
frameLoader.displaySmallImage(photo, viewHolder.imageView);
if (mSelectedItems.contains(photo)) {
viewHolder.selected.setVisibility(View.VISIBLE);
}
else {
viewHolder.selected.setVisibility(View.GONE);
}
return convertView;
}
ログ出力は次のようになります。