我正在开发一个应用程序,其中我的主页填充了具有多个视图类型的Recyclerview数据,其中包含一个水平Recyclerview和两个垂直回收视图。所以我在Recyclerview里面有Recyclerview。我想为第二个垂直Recyclerview添加滚动侦听器但无法添加,因为所有滚动都由主父Recyclerview处理。 我试图在适配器中添加滚动侦听器,它适用于水平的Recycler视图,但不适用于垂直。如何使它工作?
答案 0 :(得分:0)
如果您在nestedScrollView中使用vertical recyclerview,则需要为nestedScrollView实现滚动侦听器,否则不会触发recyclelerview的滚动侦听器。以下是基本实现它的方法,您可以捕获为分页功能加载更多数据的位置
private void implementScrollListener() {
//Scroll Listener for nestedScrollView. Note that it is used for pagination when user reaches the bottom.
if(nestedScrollView != null){
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
if (scrollY > oldScrollY) {
//Scrolling down
}
if (scrollY < oldScrollY) {
//Scrolling up
}
if (scrollY == 0) {
//Reaches to the top
}
if (scrollY < (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
//Reaches to the bottom so it is time to updateRecyclerView!
updateRecyclerView();
}
}
});
}
}
如果您不使用nestedScrollView,则可以设置myRecyclerview.setNestedScrollingEnabled(false);
以使其顺利滚动,如果您有整个活动或片段的多个recyclerview。
希望这个答案可以帮到你,
快乐编码。 巴基