drawerLayout 监听事件

如果哦我们需要侧滑屏幕来弹出一个侧边栏,我们可以通过drawerLayout来实现。它有监听事件,里面有四个方法。我们先看如下的代码,我们在代码中打一些log来看看这四个方法的执行情况
mDrawerLayout.setDrawerListener(new DrawerListener() {
            @Override
            public void onDrawerStateChanged(int arg0) {

                android.util.Log.e("zhangshuli", "statechange");
            }   

            @Override
            public void onDrawerSlide(View arg0, float arg1) {

                android.util.Log.e("zhangshuli", "slide");

            }   

            @Override
            public void onDrawerOpened(View arg0) {

                android.util.Log.e("zhangshuli", "open");
            }   

            @Override
            public void onDrawerClosed(View arg0) {

                android.util.Log.e("zhangshuli", "colse");
            }
        });
但我们把drawerLaout从隐藏到滑出时候,log打印结果如下
03-21 11:58:57.163 E/zhangshuli(28603): statechange
03-21 11:58:57.171 E/zhangshuli(28603): slide
03-21 11:58:57.204 E/zhangshuli(28603): slide
03-21 11:58:57.238 E/zhangshuli(28603): slide
03-21 11:58:57.262 E/zhangshuli(28603): slide
03-21 11:58:57.290 E/zhangshuli(28603): slide
03-21 11:58:57.317 E/zhangshuli(28603): slide
...............
03-21 11:58:57.590 E/zhangshuli(28603): open
03-21 11:58:57.591 E/zhangshuli(28603): statechange

当我们从滑出状态到隐藏的时候,log如下
03-21 12:05:27.180 E/zhangshuli(28603): statechange
03-21 12:05:27.190 E/zhangshuli(28603): slide
03-21 12:05:27.215 E/zhangshuli(28603): slide
03-21 12:05:27.246 E/zhangshuli(28603): slide
03-21 12:05:27.270 E/zhangshuli(28603): slide
03-21 12:05:27.295 E/zhangshuli(28603): slide
.................
03-21 12:05:27.485 E/zhangshuli(28603): slide
03-21 12:05:27.506 E/zhangshuli(28603): slide
03-21 12:05:27.527 E/zhangshuli(28603): slide
03-21 12:05:27.561 E/zhangshuli(28603): slide
03-21 12:05:27.601 E/zhangshuli(28603): colse
03-21 12:05:27.601 E/zhangshuli(28603): statechange

我们可以得出结论
1.onDrawerStateChanged:总是在drawerlayout状态发生切换时候执行两次,一次是状态刚刚发生改变的时候,一次是状态改变彻底完成的时候,它总是在监听事件最开始跟末尾个执行一次
2.onDrawerSlide:它是在状态发生改变的过程中一直执行
3.onDrawerOpened(打开)、onDrawerClosed(关闭):他们是在状态改变完成以后执行,是发生在第二次onDrawerStateChanged前面

转载于:https://www.cnblogs.com/wjhblogs/p/4362215.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值