Android GridView
很有意思,它重用了子視圖。滾動的那些從底部回來。因此,GridView
沒有方法通過其位置獲取子視圖。但我真的需要從自己的立場來看待問題並做一些工作。所以爲此,我創建了一個SparseArray
,並從getView
的BaseAdapter
中將它們的位置置於其中。GridView按位置查看,第一個子視圖不同
SparseArray<View> ViewArray = new SparseArray<View>();
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null)
view = li.inflate(layoutID, null);
ViewArray.put(position, view);
}
現在,我可以通過他們的位置獲得所有可見的視圖。一切都完美無缺,但在某些設備中,第一個子視圖(位置0)與陣列中的不一樣。我登錄了getView
,發現對於位置0,getView
被多次調用,並且每次數組都被設置爲不同的視圖。我不知道爲什麼GridView多次調用位置0的getView
,並且只發生在少數設備上。任何解決方案