这几天在做蓝牙开发的时候遇到了需要把将两个RecycleView放在一个Linerlayout上下显示,并且还要有滑动事件。一开始,我想到将两个RecycleView放在一个ScrollView里,通过重写RecycleView的LayoutManager禁止RecycleView的滑动事件,我以为这样就只会有一个ScrollView的滑动事件,就可以满足要求。
然而我还是太天真,一开始没有发现这样写有什么问题,后来我发现两个RecycleView的高度加起来超过屏幕高度的部分并不会显示。当RecycleView的Item数量少的时候并不会发现这个bug,当数量多的时候发现根本看不到超出屏幕的部分。
网上有一个方法是重写LayoutManager,测量RecycleView的高度。然而并没有什么用,并且在动态添加RecycleView的Item时候还会出现问题。
后来终于找到一个方法,就是用
NestedScrollView 替代ScrollView,并且recyclerView.setNestedScrollingEnabled(false);
问题完美解决。