在使用NestedScrollView嵌套RecyclerView中,首先会出现的问题就是RecyclerView滑动会出现卡顿,没有惯性滑动的效果。这时只需要调用以下方法就可以了。
recyclerView.setNestedScrollingEnabled(false);
这个方法主要是设置RecyclerView不处理滚动事件,全部交由ScorllView去处理,这样就解决了滑动卡顿的问题。而一般基于RecyclerView的刷新加载控件都是通过监听滚动事件来判断是否需要执行加载更多操作,这是需要反过来监听ScorllView的滚动事件,判断是否已经滚动到底部了来确定是否需要执行加载更多操作,具体如下:
nestedScrollView.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
@Override
public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
//判断是否滑到的底部
if (scrollY == (v.getChildAt(0).getMeasuredHeight() - v.getMeasuredHeight())) {
recyclerView.onLoadMoare();//调用刷新控件对应的加载更多方法
}
}
});