RecyclerViewに現在表示されている要素を知る必要があります。OnScrollListener.onScroll(...)
ListViewsのメソッド。View.getGlobalVisibleRect(...)
しかし、そのハックはあまりにも醜く、常に機能するとは限りません。
誰か何かアイデアはありますか?
ベストアンサー1
最初/最後の表示可能な子は に依存しますLayoutManager
。LinearLayoutManager
または を使用している場合はGridLayoutManager
、
int findFirstVisibleItemPosition();
int findFirstCompletelyVisibleItemPosition();
int findLastVisibleItemPosition();
int findLastCompletelyVisibleItemPosition();
例えば:
GridLayoutManager layoutManager = ((GridLayoutManager)mRecyclerView.getLayoutManager());
int firstVisiblePosition = layoutManager.findFirstVisibleItemPosition();
の場合LinearLayoutManager
、最初/最後はアダプタの順序に依存します。 から子要素を照会しないでください。キャッシュ用としてRecyclerView
、LayoutManager
表示可能な項目よりも多くの項目をレイアウトすることが優先される場合があります。