NestedScrollView中的RecyclerView ScrollListener

Dam*_*tes 22 android infinite-scroll onscrolllistener android-recyclerview android-nestedscrollview

我有一个EndlessRecyclerView结束了NestedScrollView.EndlessRecyclerView表示:当用户滚动到recyclerView的底部时,它会加载更多数据.这是已经实现的和其他地方的工作,但是当我把recyclerView内部NestedScrollViewOnScrollListener事件不火.

XML设计:

<NestedScrollView>

     <Other views/>

     <EndlessRecyclerView/>

</NestedScrollView >
Run Code Online (Sandbox Code Playgroud)

码:

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
        }
    });
Run Code Online (Sandbox Code Playgroud)

如何获得上述案例的滚动事件?

我知道在彼此内部有两个可滚动视图并不好.但是,如果没有两个可滚动的视图,我怎么能有上述情况呢?

我已经按照这个链接但它不起作用:scrollview android里面的recyclelerview滚动事件

Gov*_*ind 48

要在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
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

这里v.getChildCount() -1应该为您提供实现无限滚动的回收器视图.

scrollY > oldScrollY确认页面正在向下滚动.

参考:NestedScrollView.OnScrollChangeListener

  • @ThinkTwiceCodeOnce设置此侦听器时,应使用NestedScrollView.OnScrollChangeListener(),而不是View.OnScrollChangeListener(). (2认同)