RecyclerView ScrollListener внутри NestedScrollView
у меня есть EndlessRecyclerView
в конце NestedScrollView
. EndlessRecyclerView
означает: когда пользователь прокручивает в нижней части recyclerView он загружает дополнительные данные. Это уже реализовано и работает в другом месте, но когда я поставил recyclerView внутри NestedScrollView
на OnScrollListener
события не срабатывают.
разработки XML:
<NestedScrollView>
<Other views/>
<EndlessRecyclerView/>
</NestedScrollView >
код:
recyclerView.setOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
// This is never fired! Here is where I implement the logic of EndlessRecyclerView
}
});
как получить событие прокрутки для случая выше?
Я знаю, что не хорошо иметь два прокручиваемый вид внутри другой. Но как у меня есть вышеприведенный случай, не имея двух прокручиваемых представлений?
Я уже следил за этой ссылкой, но она не работает:событие прокрутки для recyclerview внутри scrollview android
1 ответов
для достижения бесконечной прокрутки для просмотра recycler, который находится под NestedScrollView, вы можете использовать " NestedScrollView.OnScrollChangeListener"
nestedScrollView.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if(v.getChildAt(v.getChildCount() - 1) != null) {
if ((scrollY >= (v.getChildAt(v.getChildCount() - 1).getMeasuredHeight() - v.getMeasuredHeight())) &&
scrollY > oldScrollY) {
//code to fetch more data for endless scrolling
}
}
});
здесь v.getChildCount() -1
должен дать вам представление recycler, для которого вы реализуете бесконечную прокрутку.
и scrollY > oldScrollY
подтверждает, что страница прокручивается вниз.