1. ホーム
  2. アンドロイド

[解決済み】RecyclerViewの表示項目を取得する。

2022-03-29 06:31:59

質問

RecyclerViewに現在表示されている要素を知る必要があります。この場合 OnScrollListener.onScroll(...) メソッドをListViewsに追加しました。で動作させようとしました。 View.getGlobalVisibleRect(...) しかし、このハックはあまりにも醜く、いつもうまくいくとは限りません。

どなたかいいアイデアありませんか?

解決方法は?

最初の子/最後の子が見えるかどうかは LayoutManager . もし、あなたが LinearLayoutManager または GridLayoutManager を使用することができます。

int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();

例えば

GridLayoutManager layoutManager = ((GridLayoutManager)mRecyclerView.getLayoutManager());
int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();

について LinearLayoutManager の場合、最初と最後はアダプタの順序に依存します。の子プロセスを問い合わせないようにしましょう。 RecyclerView ; LayoutManager は、キャッシュのために可視より多くの項目をレイアウトすることを好むかもしれません。