Dam*_*tes 22 android infinite-scroll onscrolllistener android-recyclerview android-nestedscrollview
我有一个EndlessRecyclerView结束了NestedScrollView.EndlessRecyclerView表示:当用户滚动到recyclerView的底部时,它会加载更多数据.这是已经实现的和其他地方的工作,但是当我把recyclerView内部NestedScrollView的OnScrollListener事件不火.
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