BottomSheetBehavior的ViewPager嵌套RecyclerView滑动失效问题记录

记一个遇到的问题。

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

 

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

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

 

从绑定了BottomSheetBehavior的child中找可以嵌套滑动的控件

取第一次找到的

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

完美!



作者:草貌路飛
链接:https://www.jianshu.com/p/5eb471950a92
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值