Android底部弹出栏的新选择:Google新控件BottomSheetBehavior深坑钻探失败经验总结
2017-03-01 20:02
405 查看
下面这俩布局不能共存:(
说起来这俩布局就想掬一把辛酸泪。。。。
项目本来就有drawerLayout作为用户设置类的操作栏,
后来参考滴滴打车的UI,想把“上下车地点”界面从Intent跳转变成在主界面弹出下部菜单,
查了查实现方式,方法比较多:
fragmentDialog、PopupWindow、和BottomSheetBehavior
看到Behavior是去年十月google新出的符合MaterialDesign的方便好用(坑爹)控件,果断开始研究
然而三天的苦苦钻研之后,结果是:
Behavior控件所依赖的父布局
为此看了好几轮两个布局的源码和各种途径的实现方法,尝试过各种布局嵌套方法,都无法在保证侧滑栏正常弹出的前提下,用behavior的setState()方法成功的改变底部弹出栏的弹出状态,永远是一个能用则另一个不能用,扑街。。。
PS:
当然,如果不用DrawLayout的侧滑栏功能,则Behavior的操纵一切正常,唯一的小坑是XML布局中的:
app:behavior_peekHeight="50dp"
在设置peekHeight为0dp的时候,永远都无法弹出弹框,解决办法参考这个:http://www.jianshu.com/p/21bb14e3be94
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
相关文章推荐
- Android TV开发经验总结---控件Gridview使用
- Android TV开发经验总结---控件Gridview使用
- android日常开发总结的技术经验60条
- VC/MFC之ListCtrl控件使用经验总结
- 60条Android日常开发总结的技术经验
- Android 开发实战经验总结(1)
- cocos2dx3.0进行android编译apk安装包的一些经验总结
- Android 日常开发总结的技术经验 60 条
- VC/MFC之ListCtrl控件使用经验总结(转)
- android项目中引入CoordinatorLayout控件问题总结
- 这些年Java Android技术经验总结
- Android开发 点击在本地选择换图片(头像)并且保存,实例总结。
- Android有没有什么控件,支持选择一段时间
- Android 开发软件架构思考以及经验总结
- android开发性能优化经验总结一
- Android应用市场发布经验总结
- Android日常开发总结的技术经验60条
- Android自定义View 简单实现多图片选择控件
- android 线性布局设置控件固定在底部
- android开发时为日期控件设置选择范围,再次点击时显示上次选择日期