处理滑动并以不同方式单击以关闭DrawerLayout

时间:2013-11-21 19:34:54

标签: android drawerlayout

我有一个包含列表的DrawerLayout。 我想禁用其上的滑动关闭,以便关闭它的方法是单击后退按钮或单击抽屉的非活动区域。

实施此行为是否有良好做法?

2 个答案:

答案 0 :(得分:1)

您可以使用setDrawerLockMode()导航抽屉功能DrawerLayout.LOCK_MODE_LOCKED_CLOSED作为参数来禁用手势

答案 1 :(得分:1)

Aakash Goyal的回答已经成功了一半:

使用DrawerLayout.LOCK_MODE_LOCKED_CLOSED设置抽屉锁定模式确实禁用了我想要的手势。但是在这种情况下,它也会禁用“后退”按钮以关闭抽屉。

所以我还添加了拦截背压和关闭抽屉的代码:

mDrawerLayout.setOnKeyListener(new OnKeyListener() 
{           
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) 
    {
        if( keyCode == KeyEvent.KEYCODE_BACK )
        {
            if (mDrawerLayout.isDrawerOpen(Gravity.RIGHT))
            {
                mDrawerLayout.closeDrawer(Gravity.RIGHT);
                return true;
            }
        }
        return false;
    }
});

此外,当抽屉关闭时,我已将锁定模式更改为解锁 - 因为我仍然希望允许它在滑动时打开。