1
我使用的stickyheaders gridview有很多圖像,並且標題是文本。在任何時候,我在屏幕上都有10到20張圖像。我正在使用視圖模式重用單元格。爲什麼gridview單元格不能被重用?
然而,很多時候細胞沒有被重用 - 爲什麼?此外,每個細胞都被召喚兩次 - 爲什麼?
@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;
}
這是logoutput的樣子:
你的屏幕有多大,你有多少個網格單元? nr或列x行數?請注意,android可能會準備在即將使用之前顯示的少量網格單元。 – gunar
什麼是'frameLoader',它在幹什麼? – gunar
懶洋洋地加載圖片 - 它不會改變convertview,只有裏面的圖片 –