在最近的开发过程中,我发现了两种RecyclerView滑动冲突的问题,首先说一个简单的吧
1、RecyclerView与ScrollView的滑动冲突
假如你在一个ScrollView中嵌套一个RecyclerView,你会发觉,这列表真难滑,现象就是你手指到哪,就滚动到哪,完全不会有惯性的滑动动作。其实这时候只要禁止RecyclerView的滑动就好,滑动冲突嘛,一个让步,另外一个就能顺利滑动啦,哈哈哈。方法就是重写RecyclerView的GridLayoutManager中的canScrollVertically()方法,看这名字就知道是控制是否能竖直移动的意思啦,代码如下
GridLayoutManager gridLayoutManager = new GridLayoutManager(AActivity.this, 4) { @Override public boolean canScrollVertically() { return false; } };
2、嵌套RecyclerView和CoordinatorLayout的滑动冲突
首先说明一点单个RecyclerView和CoorrdinatorLayout配合使用是不会出现这个问题,我们现在讨论的是嵌套的RecyclerView和CorrdinatorLayout配合使用产生的滑动冲突,当然这时候你会想,和上面那个一样禁止一个滑动不就好了吗!我想说,我用实践的方法试过,不行!!!!
然后我找到一个方法,嵌套中的RecyclerView设置了
listView.setNestedScrollingEnabled(false);
这个方法完美解决了滑动冲突问题,具体原因我也不太清楚,有待考究,现在只是介绍一个解决方法,之后有进展会更新文章