He estado siguiendo la guía del cajón de navegación de Google y me gustaría agregarla a una Actividad con pestañas y gestos.
Me gustaría deshabilitar el gesto para abrir el cajón de navegación, ¿alguien tiene alguna idea de cómo hacerlo?
He estado siguiendo la guía del cajón de navegación de Google y me gustaría agregarla a una Actividad con pestañas y gestos.
Me gustaría deshabilitar el gesto para abrir el cajón de navegación, ¿alguien tiene alguna idea de cómo hacerlo?
Respuestas:
Deberías usar:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
A mí me funcionó, el deslizamiento para abrir el cajón estaba desactivado.
Si aún así no funciona, consulte la respuesta provista aquí .
mDrawerLayout
, configúrelo de la siguiente manera:mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ToolBar
(API 21) y usar la SlidingTabLayout
función que tiene, lo cual está en conflicto con mi Nav. deslizamiento del cajón. Prefiero deshabilitar el Nav. diapositiva del cajón a favor de la ToolBar
característica deslizante.
para bloquear puedes hacer esto:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
y para desbloquear:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
Agregue valor de gravedad también cuando use setDrawerLockMode () ;
Hacer esto :
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
Esto debería funcionar como un encanto
Para desactivar deslizar, anulación onInterceptTouchEvent
y onTouchEvent
en DrawerLayout
y ellos tienen return false.
La respuesta para desactivar el deslizamiento es la correcta. Creo que LOCK_MODE_LOCKED_CLOSED funcionó en Compat 24.x, pero la funcionalidad se ha cambiado en las nuevas bibliotecas de compatibilidad y LOCK_MODE_LOCKED_CLOSED ahora evita por completo que se muestre el menú de navegación, incluso mediante el uso del menú de hamburguesas.
La siguiente clase funciona para mí (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)
}
}
Esto funciona para mi
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, {Your drawer view});