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
,并且只发生在少数设备上。任何解决方案