Чтобы узнать, когда отображается последний элемент, вы должны реализовать RecylerView.OnScrollListener
и каждый раз, когда список прокручивается, запрашивать позицию последнего видимого элемента на экране:
Kotlin
recyclerView.addOnScrollListener(object: RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
val linearLayoutManager = recyclerView.layoutManager as LinearLayoutManager
val lastVisiblePosition = linearLayoutManager.findLastVisibleItemPosition()
if (lastVisiblePosition == dataList.size) {
// perform network request
}
}
})
Java
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
int lastVisiblePosition = linearLayoutManager.findLastVisibleItemPosition();
if (lastVisiblePosition == dataList.size()) {
// perform network request
}
}
})
Используйте findLastCompletelyVisibleItemPosition()
вместо findLastVisibleItemPosition()
, если вам нужно проверить, когда последний элемент полностью виден.