表示されているリストビューの子の数をカウントする方法はありますか?
いつでも変更できるデータベースにリンクされた情報を含むリストビューがあります。データベースが変更されると、リストビューを処理するuiクラスに通知するブロードキャストを送信します。次に、変更されたデータに関連する子要素が更新されます。リストビューの各アイテムにタグを付け、リストビューを繰り返して、ブロードキャストからタグに一致する行を見つけることで、これを実現しています。
目に見える子だけを繰り返し処理したい。表示されていないビューは、作成時に新しいデータを反映するため、手動で更新する必要はありません。現在、listView.getfirstVisiblePosition()からlistView.getChildCount()まで繰り返します。私は表示されている行の上にある行を調べないが、その下にある行も調べたくないので、これは何もないよりはましです。
Android開発者のリストビューページを確認しましたが何も見つかりませんでした。目に見える子の数を取得する方法を誰かが知っていますか?
ありがとう!
listView.getLastVisiblePosition()、これはあなたが探しているものですか?そうでない場合、子ビューによる反復...
int count = 0;
for (int i = 0; i <= listView.getLastVisiblePosition(); i++)
{
if (listView.getChildAt(i) != null)
{
count++; // saying that view that counts is the one that is not null,
// because sometimes you have partially visible items....
}
}
これは、表示される子の数をすばやく取得する方法です。
int visibleChildCount = (listView1.getLastVisiblePosition() - listView1.getFirstVisiblePosition()) + 1;
上記のgreg7gkbのコメントを参考にしてください-誰かがこれを使用している場合に備えて、カウントが1つ減ることを指摘したいと思います。そのはず
(listView1.getLastVisiblePosition() - listView1.getFirstVisiblePosition()) + 1
したがって、最後の表示が8で、最初の表示が5の場合、(8-5)+1 = 4 表示:5、6、7、および8
A. Abiriがそのすぐ下にあるようです。