DrawerLayout是在android.support.v4包下,实现了侧滑菜单效果的控件。是第三方侧滑控件如MenuDrawer等的出现之后,google借鉴而出现的产物。
使用注意事项:
主内容视图一定要是DrawerLayout的第一个子视图
主内容视图宽度和高度需要match_parent
必须显示指定侧滑视图的android:layout_gravity属性android:layout_gravity = "start"时,从左向右滑出菜单;android:layout_gravity = "end"时,从右向左滑出菜单,不推荐使用left和right
侧滑视图的宽度以dp为单位,不建议超过320dp(为了总能看到一些主内容视图)
设置侧滑时间:mDrawerLayout.setDrawerListener(DrawerLayout.DrawerListener);
可以结合Toolbar使用当用户点击Toolbar上的应用图标,弹出侧滑菜单
简单使用:
布局文件:
效果如下:
也可以为页面增加左右两边的侧滑菜单栏:
效果如下:
代码控制菜单弹出收起:
drawer.openDrawer(GravityCompat.START); //打开左边的菜单
drawer.openDrawer(GravityCompat.END); //打开右边的菜单
drawer.closeDrawer(GravityCompat.START); //关闭左边的菜单
drawer.closeDrawer(); //不带参数,关闭所有的菜单
控制菜单位置
android:layout_gravity="left" <==> android:layout_gravity="start"
android:layout_gravity="right" <==> android:layout_gravity="end"
DrawerLayout监听器
DrawerLayout配合ToolBar快速实现高大上的侧滑菜单:
效果预览
布局文件
设定ToggledrawerToggle为DrawerLayout的滑动监听器:
完事!
参考
http://www.jianshu.com/p/65f268f01dce