我一直在遵循Google的导航抽屉指南,并希望将其添加到带有标签和手势的“活动”中。
我想禁用打开导航抽屉的手势,有人知道如何执行此操作吗?
我一直在遵循Google的导航抽屉指南,并希望将其添加到带有标签和手势的“活动”中。
我想禁用打开导航抽屉的手势,有人知道如何执行此操作吗?
Answers:
您应该使用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
它对我有用,打开抽屉的滑动被禁用。
如果仍然无法使用,请查看此处提供的答案。
mDrawerLayout
,请进行以下设置:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21)并使用SlidingTabLayout
它具有的功能,该功能与我的Nav冲突。抽屉刷卡。所以我宁愿禁用Nav。抽屉式滑轨有利于ToolBar
滑动功能。
要锁定,您可以执行以下操作:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
对于解锁:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
使用setDrawerLockMode()时也要添加重力值;
做这个 :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
这应该像一个魅力
禁用刷卡的答案是正确的。我认为LOCK_MODE_LOCKED_CLOSED在Compat 24.x中可以使用,但是功能已在较新的compat库中进行了更改,并且LOCK_MODE_LOCKED_CLOSED现在完全阻止了导航菜单的显示,即使通过使用汉堡菜单也是如此。
以下课程为我(科特琳)工作:
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)
}
}