【发布时间】:2013-06-07 17:10:38
【问题描述】:
我一直在关注the navigation drawer guide by Google,我想将其添加到带有标签和手势的 Activity。
我想禁用打开导航抽屉的手势,有人知道怎么做吗?
【问题讨论】:
标签: android tabs navigation gesture drawer
我一直在关注the navigation drawer guide by Google,我想将其添加到带有标签和手势的 Activity。
我想禁用打开导航抽屉的手势,有人知道怎么做吗?
【问题讨论】:
标签: android tabs navigation gesture drawer
你应该使用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
它对我有用,打开抽屉的滑动被禁用。
如果还是不行,请查看here提供的答案。
【讨论】:
mDrawerLayout,设置如下:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar(API 21)并使用它具有的SlidingTabLayout 功能,这与我的导航冲突。抽屉滑动。所以我宁愿禁用导航。抽屉滑轨支持ToolBar 滑动功能。
对于锁定,您可以这样做:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
解锁:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
【讨论】:
error: cannot find symbol mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
使用setDrawerLockMode()时也要添加重力值;
这样做:
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
这应该像一个魅力
【讨论】:
禁用滑动的答案是正确的。我认为 LOCK_MODE_LOCKED_CLOSED 在 Compat 24.x 中有效,但在较新的兼容库中功能已更改,并且 LOCK_MODE_LOCKED_CLOSED 现在完全阻止显示导航菜单,即使使用汉堡菜单也是如此。
以下课程适合我(Kotlin):
class MyDrawerLayout(ctx: Context) : DrawerLayout(ctx) {
var isSwipeOpenEnabled: Boolean = true
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onInterceptTouchEvent(ev)
}
@SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(ev: MotionEvent): Boolean {
if (!isSwipeOpenEnabled && !isDrawerVisible(Gravity.START)) {
return false
}
return super.onTouchEvent(ev)
}
}
【讨论】:
要禁用滑动,请在 DrawerLayout 上覆盖 onInterceptTouchEvent 和 onTouchEvent 并让它们返回 false。
【讨论】:
这对我有用
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});
【讨论】: