提供一个在窗口顶层显示,可从窗口边缘拖出的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的更多相关文章

  1. drawableLayout的使用(转载讲的比较清晰的文章)

    创建drawbler的布局文件 初始化drawbler的列表 响应drawable列表点击事件 现在侧滑菜单使用很多,大都是通过SlidingMenu实现.现在也可以通过DrawerLayout 创建 ...

  2. ToolBar+Drawable实现一个好用的侧滑栏(侧边栏)和工具栏

    先参考下ToolBar的使用和DrawableLayout的使用: 1.主界面布局,主要结构包含一个ToolBar和一个DrawableLayout,DrawableLayout里面有左侧边栏布局和主 ...

随机推荐

  1. java字符串大小写字母互改

    import java.util.Scanner; public class Test { /** * 测试数据 * * @param args */ public static void main( ...

  2. OC基础--对成员变量的封装

    #import <Foundation/Foundation.h> //日期结构体 typedef struct{ int year; int month; int day; } Date ...

  3. 关于C#的内存释放问题

    最近在做一个要循环读取xml文件的功能. 想法是读取一个文件,释放一个文件,这样就不会消耗太多内存. 结果运行起来内存不停涨,最后内存溢出.用gc,disponse,异步都没有用. 后来改成relea ...

  4. 轮播图适应代码jQ

    (function(){ var i = 0; var time ; $('.page-size').html('1'); var obj = $('.xst-scroll>li'); var ...

  5. sysctl.conf网络内核参数说明(转)

    下面是我的理解,可能有误,仅供参考. 要调优,三次/四次握手必须烂熟于心. client                  server(SYN_SENT)      —>  (SYN_RECV ...

  6. JAVA第四周作业

    import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...

  7. (转)Web性能优化方案

    第一章 打开网站慢现状分析 在公司访问部署在IDC机房的VIP网站时会感觉很慢.是什么原因造成的?为了缩短页面的响应时间,改进我们的用户体验,我们需要知道用户的时间花在等待什么东西上. 可以跟踪一下我 ...

  8. MySQL数据库7 - 汇总和分组数据

    一 汇总和分组数据 查询语句 ---> 结果集(多条数据) ---> 聚合函数  ----> 单行记录 1.常用的聚合函数: sum()         数字             ...

  9. redis基础总结

    Redis 数据类型: String Hash String类型: 一个key对应一个value,二进制安全的. set方法:设置对应值的value set name value get方法:获取对应 ...

  10. Rails学习笔记二

    rails框架: MVC模型:模型.视图.控制器 来自网站的请求先是被传递到路由,判断请求找出控制器中的方法,处理请求,控制器中的方法也被称作行为 行为可以与模型交互,访问数据库,并为视图准备信息 由 ...