0

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

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

4

2 回答 2

1

您可以使用setDrawerLockMode()带有 as 参数的 Navigation Drawer 的功能DrawerLayout.LOCK_MODE_LOCKED_CLOSED来禁用手势

于 2013-11-21T20:10:45.380 回答
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;
    }
});

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

于 2013-11-22T11:04:59.677 回答