我有一个DrawerLayout
包含一个列表。我想禁用它的滑动关闭,因此关闭它的方法是单击后退按钮或单击抽屉的非活动区域。
是否有实施此行为的良好做法?
我有一个DrawerLayout
包含一个列表。我想禁用它的滑动关闭,因此关闭它的方法是单击后退按钮或单击抽屉的非活动区域。
是否有实施此行为的良好做法?
您可以使用setDrawerLockMode()
带有 as 参数的 Navigation Drawer 的功能DrawerLayout.LOCK_MODE_LOCKED_CLOSED
来禁用手势
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;
}
});
此外,当抽屉关闭时,我已将锁定模式更改为解锁 - 因为我仍然希望允许它在滑动时打开。