码迷,mamicode.com
首页 > 其他好文 > 详细

DrawableLayout

时间:2015-08-15 18:05:19      阅读:570      评论:0      收藏:0      [点我收藏+]

标签:

提供一个在窗口顶层显示,可从窗口边缘拖出的container组件。

DrawableLayout本身作为整个容器,先进行默认显示内容的布局,再进行拖出菜单的内容布局。也就是一个DL包含两个或三个子控件,第一个子控件是默认布局,显示在下层;第二、三个子控件是菜单布局(方向不同),默认不显示,划出时显示在上层。

通过子控件(菜单本身)的layout_gravity控制控件从何方向被拖出。

子控件2、3 以下称 菜单控件

的layout_gravity来决定其滑出位置,right (start)/ left(end);不可用top,bottom,这两个属性将导致应用崩溃。注意:编辑时编辑器可能不会提示layout_gravity属性,需要自己打出。

菜单控件的宽度设置为match时,为系统默认宽度,划出时大概占整个屏幕宽度的4/5;设置为warp时,内容依然会自适应。

DrawerListener 可以监听菜单的滑出状态。

onDrawerStateChanged 菜单视图绘制状态变化的回调,1、2为正在绘制,此时尽量不要进行比较消耗性能的操作,不然滑动将会卡顿。0为没有执行绘制。

onDrawerSlide 菜单滑动的回调,回调的参数为当前菜单视图所显示的宽度与其全宽的的比例,1为全部显示,0为隐藏。

onDrawerClosed 如其名,菜单关闭时回调。

onDrawerOpened 同上如其名。

SimpleDrawerListener提供单一的回调重写,未重写部分将不做任何操作。

DrawableLayout 的 closeDrawer 、openDrawer方法可以主动控制菜单的状态 这两个方法需要接收一个int参数(GravityCompat的start、end,不能用right,left) 以确定要滑动的菜单视图,当该参数与xml中菜单控件的gravity不一致时(如left/start与 end)也将抛出异常应用崩溃。

如果在默认视图里增加按钮通过点击来控制菜单的滑出的话,请注意,当菜单为滑出状态时点击空白区域,将会导致菜单隐藏。可以再点击监听中直接使用isDrawerVisible方法来确定菜单是否为显示状态,之后确定执行滑出、隐藏操作。

DrawableLayout

标签:

原文地址:http://www.cnblogs.com/eliyet/p/4732695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!