您的位置:首页 > 移动开发 > Android开发

Android底部弹出栏的新选择:Google新控件BottomSheetBehavior深坑钻探失败经验总结

2017-03-01 20:02 405 查看
下面这俩布局不能共存:(
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: