自己对于android5.0新特性DrawerLayout的开关模式的理解

来源:互联网 发布:php执行sql语句 编辑:程序博客网 时间:2024/05/16 17:27

自己在做项目的时候,需要用的DrawerLayout。但是并不想让它用滑动来实现打开和关闭,而是需要按照自己的要求来实现抽屉的打开和关闭。便对DrawerLayout做了相对的了解。
首先,需要使用DrawerLayout便需要导入design包。
在布局文件中通过对布局属性layout_gravity的设置来实现抽屉的位置。正常情况下我们做了简单的xml布局后通过侧滑便可以打开或关闭相应的抽屉。
对于抽屉的关闭和打开方式主要是通过:
dl.setDrawerLockMode(参数);来实现这里的参数有四个分别是:
dl.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);这里官方给出是注释是:The drawer is unlocked.设置这个抽屉是没有锁的,和下面的默认未定义是同样的效果。

dl.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNDEFINED);

dl.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);这个参数官方给出的注释是:The drawer is locked closed. The user may not open it, though the app may open it programmatically.大概意思就是抽屉锁是关闭的,用户不能打开它,但是可以通过代码的方式来打开它。
这个参数是默认抽屉是关闭的,并且不能通过滑动的方式讲抽屉打开或者关闭。但是可以通过代码的方式来实现抽屉的关闭和打开。(这里有个小问题需要注意,因为抽屉在打开的时候不是占满整个屏幕的,所以我们可以在抽屉没有覆盖的地方点击到抽屉下面的activity或者fragment,若点击到的话 抽屉就会关闭)
dl.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);这里的注释是:The drawer is locked open. The user may not close it, though the app may close it programmatically.抽屉是锁是打开的,不能关闭它,但是可以通过代码的方式关闭它。
这个参数是默认抽屉是打开的并且不可通过滑动来将抽屉关闭或者打开,只能通过代码的方式,即可以通过button来实现抽屉的关闭和开启。这个相对于上面的,区别在于抽屉默认是打开的,所以可以在onCreate()方法中先将不需要看到的抽屉关闭掉,不然会出现当你打开activity或者fragment时,抽屉会处在打开的状态,这个参数在点击抽屉没有覆盖的地方时,抽屉是不会关闭的,只能通过代码的方式来对抽屉进行关闭和开启。

希望对有用到的朋友有些帮助。

0 0
原创粉丝点击