我有一个包含列表的DrawerLayout
。
我想禁用其上的滑动关闭,以便关闭它的方法是单击后退按钮或单击抽屉的非活动区域。
实施此行为是否有良好做法?
答案 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;
}
});
此外,当抽屉关闭时,我已将锁定模式更改为解锁 - 因为我仍然希望允许它在滑动时打开。