RecyclerView で表示されるアイテムを取得する 質問する

RecyclerView で表示されるアイテムを取得する 質問する

RecyclerViewに現在表示されている要素を知る必要があります。OnScrollListener.onScroll(...)ListViewsのメソッド。View.getGlobalVisibleRect(...)しかし、そのハックはあまりにも醜く、常に機能するとは限りません。

誰か何かアイデアはありますか?

ベストアンサー1

最初/最後の表示可能な子は に依存しますLayoutManagerLinearLayoutManagerまたは を使用している場合はGridLayoutManager

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

例えば:

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

の場合LinearLayoutManager、最初/最後はアダプタの順序に依存します。 から子要素を照会しないでください。キャッシュ用としてRecyclerViewLayoutManager表示可能な項目よりも多くの項目をレイアウトすることが優先される場合があります。

おすすめ記事