DrawerLayout禁用侧边滑动

转发地址:http://blog.csdn.net/cndjjne/article/details/45604747

使用DrawerLayout的时候有时会出现侧边栏只能滑出一小部分,然后在手指抬起之后侧边栏并没有弹出来的情况,我不清楚这是否是一个BUG,但是个人感觉有些影响体验,索性直接将侧边滑动给禁用掉。

DrawerLayout的侧边滑动可以通过设置锁定模式来禁用 
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); 
这样设置之后侧边栏弹出之后也无法使用滑动来关闭,只能通过点击空白区域来关闭侧边栏,我们可以通过设置DrawerLayout的setDrawerListener在侧滑打开的时候取消锁定模式,侧滑关闭的时候打开锁定模式,代码如下:

mDrawerLayout.setDrawerListener(new DrawerLayout.DrawerListener() {
    @Override
    public void onDrawerSlide(View drawerView, float slideOffset) {}
    @Override
    public void onDrawerOpened(View drawerView) {
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
    }
    @Override
    public void onDrawerClosed(View drawerView) {
        mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
    }
    @Override
    public void onDrawerStateChanged(int newState) {}
});

通过这样的设置我们就实现了禁用侧边滑动,并且对其他操作不产生影响


你可能感兴趣的:(Android)