Android随笔-侧拉框:DrawerLayout

DrawerLayout是谷歌官方推出的侧滑菜单,DrawerLayout最好为界面的根布局,否则可能会出现触摸事件被屏蔽的问题;主内容区的布局代码要放在侧滑菜单布局的前面, 因为 XML 顺序意味着按 z序(层叠顺序)排序,并且抽屉式导航栏必须位于内容顶部;侧滑菜单部分的布局必须设置layout_gravity属性,他表示侧滑菜单是在左边还是右边,而且如果不设置在的时候会报错,设置了layout_gravity=”start/left”的视图才会被认为是侧滑菜单,同时侧滑的布局必须放在最下面,不然无法响应侧滑控件的的事件,只会点击之后就关闭侧滑



drawerLayout左侧菜单(或者右侧)的展开与隐藏可以被DrawerLayout.DrawerListener的实现监听



我们还可以通过按钮显示侧边栏



侧滑的布局可以写在fragment,这里name属性就是用来对应的Fragment的






经过这几步我们就吧侧滑菜单写出来了
在这里 drawer_layout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED,Gravity.END); 锁定右面的侧滑菜单,不能通过手势关闭或者打开,只能通过代码打开!
如果DrawerLayout侧滑菜单中的控件点击事件能穿透到底部,那么可以在菜单的布局文件中设置clickable="true"如果想实现QQ那种底部布局跟则动的效果就在addDrawerListener事件中的onDrawerSlide()添加下面的代码,就能跟随移动了

//mDrawerLayout为你的DrawerLayout
View content = mDrawerLayout.getChildAt(0);
int offset = (int) (drawerView.getWidth() * slideOffset);
content.setTranslationX(offset);