解决:SwipeRefreshLayout嵌套RecyclerView时滑动冲突

情况: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);
            }
        });

 添加好后,再测试一下就可以正常滑动了!

你可能感兴趣的:(Bug填坑笔记)