【发布时间】:2013-06-06 05:33:09
【问题描述】:
如何禁用 DrawerLayout 的手势识别? (从左到右滑动)并且只接受关闭手势(从右到左)并仅使用主页按钮打开抽屉?
【问题讨论】:
标签: android drawerlayout
如何禁用 DrawerLayout 的手势识别? (从左到右滑动)并且只接受关闭手势(从右到左)并仅使用主页按钮打开抽屉?
【问题讨论】:
标签: android drawerlayout
这对我有用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
您可以通过点击主页按钮来展开抽屉,并可以使用从右向左滑动手势来关闭它。但是,不再触发从左向右滑动。
【讨论】:
对于setDrawerLockMode(),这是在代码中,但不在 Android developer 文档中:
/**
* The drawer is unlocked.
*/
public static final int LOCK_MODE_UNLOCKED = 0;
/**
* The drawer is locked closed. The user may not open it, though
* the app may open it programmatically.
*/
public static final int LOCK_MODE_LOCKED_CLOSED = 1;
/**
* The drawer is locked open. The user may not close it, though the app
* may close it programmatically.
*/
public static final int LOCK_MODE_LOCKED_OPEN = 2;
【讨论】:
要禁用 DrawerLayout 手势识别,请使用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN);
然后,要启用从右向左滑动,请检查以下资源: http://android-journey.blogspot.com/2010/01/android-gestures.html
【讨论】:
看起来我发现了错误。例如如果设置:
android:layout_gravity="right"
或
android:layout_gravity="left"
对于抽屉内容并使用.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) 一切都会好的。
但如果android:layout_gravity="left|center_vertical" 或类似LOCK_MODE_LOCKED_CLOSED 不起作用。
【讨论】:
LOCK_MODE_LOCKED_CLOSED 现在完全阻止了导航菜单的显示,即使是通过汉堡菜单(这可能是不需要的)。以下对我有用:https://stackoverflow.com/a/52160351/377320
【讨论】:
这对我有用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
您可以通过点击必须触发的汉堡图标或按钮来展开抽屉。但是,不再触发从左向右滑动。
【讨论】: