我一直在关注Google 的抽屉式导航指南,我想将其添加到带有标签和手势的 Activity 中。
我想禁用打开导航抽屉的手势,有人知道怎么做吗?
我一直在关注Google 的抽屉式导航指南,我想将其添加到带有标签和手势的 Activity 中。
我想禁用打开导航抽屉的手势,有人知道怎么做吗?
你应该使用:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
它对我有用,打开抽屉的滑动被禁用。
如果它仍然不起作用,请查看此处提供的答案。
对于锁定,您可以这样做:
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 中有效,但在较新的兼容库中功能已更改,并且 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)
}
}
要禁用滑动,覆盖onInterceptTouchEvent
并onTouchEvent
打开DrawerLayout
并让它们返回 false。
这对我有用
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});