下面这俩布局不能共存:(CoordinatorLayout
)和(drawerLayout)
说起来这俩布局就想掬一把辛酸泪。。。。
项目本来就有drawerLayout作为用户设置类的操作栏,
后来参考滴滴打车的UI,想把“上下车地点”界面从Intent跳转变成在主界面弹出下部菜单,
查了查实现方式,方法比较多:
fragmentDialog、PopupWindow、和BottomSheetBehavior
看到Behavior是去年十月google新出的符合MaterialDesign的方便好用(坑爹)控件,果断开始研究
然而三天的苦苦钻研之后,结果是:
Behavior控件所依赖的父布局CoordinatorLayout
,无法与侧滑栏所依赖的drawerLayout完美兼容
为此看了好几轮两个布局的源码和各种途径的实现方法,尝试过各种布局嵌套方法,都无法在保证侧滑栏正常弹出的前提下,用behavior的setState()方法成功的改变底部弹出栏的弹出状态,永远是一个能用则另一个不能用,扑街。。。
PS:
当然,如果不用DrawLayout的侧滑栏功能,则Behavior的操纵一切正常,唯一的小坑是XML布局中的:
app:behavior_peekHeight="50dp"
在设置peekHeight为0dp的时候,永远都无法弹出弹框,解决办法参考这个:http://www.jianshu.com/p/21bb14e3be94