滚动监听器以嵌套recyclerview

时间:2017-11-20 10:07:52

标签: android android-recyclerview

我正在开发一个应用程序,其中我的主页填充了具有多个视图类型的Recyclerview数据,其中包含一个水平Recyclerview和两个垂直回收视图。所以我在Recyclerview里面有Recyclerview。我想为第二个垂直Recyclerview添加滚动侦听器但无法添加,因为所有滚动都由主父Recyclerview处理。 我试图在适配器中添加滚动侦听器,它适用于水平的Recycler视图,但不适用于垂直。如何使它工作?

1 个答案:

答案 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。

希望这个答案可以帮到你,

快乐编码。 巴基