當我跑我的活動,以顯示下面的GridView似乎停留在獲取位置時0的GridView在getView方法崩潰滾動
你可以看到下面的時候GridView控件顯示在屏幕上正在發生的事情日誌。這在第一次加載時工作正常,但是當它滾動時,它似乎試圖重用第一個位置(0),即使它仍在使用中並且與空指針異常一起崩潰。
爲什麼它會試圖重新使用視圖馬上?爲什麼會認爲連續多次嵌套呢?是否適配器會被擴展FrameLayout的CheckableButton所困惑?
謝謝!
public View getView(int position, View convertView, ViewGroup parent) {
CheckableButton checkableButton;
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new ViewGroup.LayoutParams(175, 175));
checkableButton = new CheckableButton(mContext);
checkableButton.setLayoutParams(new GridView.LayoutParams(
GridView.LayoutParams.WRAP_CONTENT,
GridView.LayoutParams.WRAP_CONTENT));
checkableButton.addView(imageView);
Log.d("Initiated New View:", "" + position);
}
else {
checkableButton = (CheckableButton) convertView;
imageView = (ImageView) checkableButton.getChildAt(position);
Log.d("Reused View:", "" + position);
}
imageView.setImageBitmap(photos[position]);
return checkableButton;
}
這裏是Log.d讀數
d /啓動新觀點:: 0
d /重複使用瀏覽:: 0
d /重複使用瀏覽:: 0
D /重新使用視圖:: 0
D /初始化新視圖:: 1
d /啓動的新觀點:: 2
d /啓動的新觀點:: 3
d /啓動的新視角:4
d /啓動的新觀點:: 5
d /啓動的新觀點:: 6
d /啓動的新觀點:: 7
d /啓動新的視圖:: 8
d /啓動的新觀點:: 9
d /啓動的新觀點:: 0
d /重複使用的查看:: 0
d /重複使用的查看:: 0
d /重複使用的查看:: 0
d /重複使用的查看:: 0
d /重複使用瀏覽:: 0
輝煌,它做到了,謝謝! –
不客氣 – Blackbelt