情况:SwipeRefreshLayout嵌套RecyclerView,当内容超过屏幕下拉,不知道你是要下拉刷新还是下滑,一直认为你是下拉刷新。
解决方法:
添加如下代码:
其中rvHome代表RecyclerView控件、srlHomeRecycleRefresh代表SwipeRefreshLayout控件,如用findViewById,请先findViewById后再添加下面代码。
//解决swipelayout与Recyclerview的冲突
rvHome.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
int topRowVerticalPosition =
(recyclerView == null || recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
srlHomeRecycleRefresh.setEnabled(topRowVerticalPosition >= 0);
}
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
}
});
添加好后,再测试一下就可以正常滑动了!