当前位置:网站首页>解决SmartRefreshLayout/SwipeRefreshLayout与RecyclerView下拉冲突的问题

解决SmartRefreshLayout/SwipeRefreshLayout与RecyclerView下拉冲突的问题

2022-08-11 05:22:00 骑猪追大象

我遇到的场景是这样的,如下图:
在这里插入图片描述
滑动到顶部继续滑动,此时下滑item,整个蓝色区域(CoordinatorLayout)会随着下滑而不是item下滑

解决方案一:

判断最顶部的数据是否显示(getTop == 0?),第一个数据不在顶部的话设置父布局不可滑动

recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
    
            @Override
            public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
    
                super.onScrollStateChanged(recyclerView, newState);
            }

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
    
                //解决RecyclerView和smartRefreshLayout滑动冲突问题
                super.onScrolled(recyclerView, dx, dy);
                int topRowVerticalPosition =
                        (recyclerView.getChildCount() == 0) ? 0 : recyclerView.getChildAt(0).getTop();
                smartRefreshLayout.setNestedScrollingEnabled(topRowVerticalPosition >= 0);
            }
        });

解决方案二:

使用替代方案:
https://github.com/laenger/ViewPagerBottomSheet

原网站

版权声明
本文为[骑猪追大象]所创,转载请带上原文链接,感谢
https://blog.csdn.net/luzhenyuxfcy/article/details/109225575