Пагинация не работает для RecyclerView в NestedScrollView
Как реализовать разбиение на страницы recyclerview
Что внутри NestedScrollView
?
2 ответов
выполните следующие действия:
1. Установите вложенную прокрутку, включенную false представления recycler.
recyclerView.setNestedScrollingEnabled(false);
2. Добавить список прокрутки во вложенный scrollview.
mScrollView.getViewTreeObserver().addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
@Override
public void onScrollChanged()
{
View view = (View)mScrollView.getChildAt(mScrollView.getChildCount() - 1);
int diff = (view.getBottom() - (mScrollView.getHeight() + mScrollView
.getScrollY()));
if (diff == 0) {
// your pagination code
}
}
});
Если вы используете Котлин ваш код будет выглядеть как
scroll?.viewTreeObserver?.addOnScrollChangedListener {
val view = scroll.getChildAt(scroll.childCount - 1)
Timber.d("Count==============${scroll.childCount}")
val diff = view.bottom - (scroll.height + scroll.scrollY)
Timber.d("diff==============$diff")
if (diff == 0) {
//your api call to fetch data
}
}
и последнее, но не менее установить прокрутку RecyclerView false
ViewCompat.setNestedScrollingEnabled(recyclerView, false)
обратите внимание: recyclerView.setNestedScrollingEnabled(false)
он будет работать только с api 21, но если вы будете использовать его с поддержкой lib, он также будет работать с версией api 21 смотрите официальную документацию