Android GridView
非常有趣,它重用了子视图.向上滚动的那些从底部返回.因此,没有方法GridView
可以通过其位置获取子视图.但我真的需要通过它的立场来看待并做一些工作.因此,要做到这一点,我创建了一个SparseArray
,并把意见通过其位置从getView
的BaseAdapter
.
SparseArrayViewArray = new SparseArray (); 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 getView
多次调用位置0并且只在少数设备上发生.有解决方案吗