上記で記述した内容は機能しますが、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);
}
}
基本的findViewWithTag
には似たようなことをしますが、整数を比較するのではなく、タグを比較します(これはオブジェクトであり、intではないため低速です)