BottomSheetBehavior的ViewPager嵌套R

2018-07-27  本文已影响0人  草貌路飛

记一个遇到的问题。

背景: 需要实现类似百度地图换乘路线在地图中展示的效果。最终实现如图:

这里遇到的问题是下面出来的是一个ViewPager,带了BottomSheetBehavior.  ViewPager的每页中都有一个RecyclerView.然后就会出现RecyclerView上下滑动不了(也不是都滑动不了,正确来说只是第一页的RecyclerView能滑动,不过因为我开发的时候换乘查询出来的数据刚好第一页中的路线是只有一条公交,所以内容本来也没到够滑动的地步,所以开始误以为是都滑动不了)。

解决:简单看了下BottomSheetBehavior的源码,它只支持内部有一个可以上下滑动的控件,多个的话就取第一个。

从绑定了BottomSheetBehavior的child中找可以嵌套滑动的控件 取第一次找到的

这个mNestedScrollingChildRef在处理touch事件的时候会用到。所以解决办法就是在ViewPager每次切换页面的时候重新设置下这个mNestedScrollingChildRef就可以了。 可以直接copy代码重新写一个BottomSheet也可以继承原来的,直接把泛型View的子类改为ViewPager, 就是只给ViewPager用的。最后在onLayoutChild方法中

完美!

上一篇 下一篇

猜你喜欢

热点阅读