use*_*849 9 android android-gridview
我有一个网格视图,我使用自定义适配器填充.在填充gridview时,我将每个元素放在一个唯一标记内.
填充此gridview之后,我希望在gridview中找到其标记的特定元素.我怎么找到这个?
目前我这样做:
gridviewobject.findViewById(thetag);
// gridview object is the object of the gridview that i have populated.
Run Code Online (Sandbox Code Playgroud)
Jos*_*arl 15
您上面写的内容将起作用,除非意识到a)通过其标记搜索视图可能是您用于查找视图的最慢方法,b)如果您尝试请求带有标记的视图并且该视图不是目前可见,那么你会得到null.
这是因为GridView它会回收它的视图,所以基本上它只能制作足够的视图以适应屏幕,然后在滚动时只更改这些视图的位置和内容.
可能是一种更好的方法
final int numVisibleChildren = gridView.getChildCount();
final int firstVisiblePosition = gridView.getFirstVisiblePosition();
for ( int i = 0; i < numVisibleChildren; i++ ) {
int positionOfView = firstVisiblePosition + i;
if (positionOfView == positionIamLookingFor) {
View view = gridView.getChildAt(i);
}
}
Run Code Online (Sandbox Code Playgroud)
基本上findViewWithTag做类似的事情,但不是比较整数,它比较标签(由于它们是对象而不是整数,因此速度较慢)
| 归档时间: |
|
| 查看次数: |
11834 次 |
| 最近记录: |