NavigationDrawer desactivar el desplazamiento a la derecha
Tengo configuración de DrawerLayout con un cajón a cada lado
<FrameLayout android:id="@+id/navigation_drawer" android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent" android:layout_gravity="start" /> <FrameLayout android:id="@+id/navigation_drawer_right" android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent" android:layout_gravity="end" />
El cajón derecho se llena cuando se ejecuta cierto método, sin embargo, antes de que se ejecute el método, puedo deslizarlo desde la derecha y la pantalla se oscurece pero no aparece nada (porque el diseño está vacío hasta que se ejecute el método).
- Icono de gavetas de navegación en la parte superior derecha muestra Icono de flecha trasero insted de icono de hamburguesa
- Cambiar el icono del cajón de nuevo a la flecha de retroceso
- Determinar si el NavigationDrawer está abriendo o cerrando
- Adición de un diseño lineal al cajón de navegación (termina chocando con un ClassCastException)
- Detección del estado de la aplicación de currículum de diferentes android estado de navegación
¿Cómo puedo deshabilitar el golpe de la derecha hasta que el método se ha ejecutado? He visto soluciones para deshabilitar completamente cualquier swiping, pero eso no funcionaría para mí, ya que el cajón izquierdo siempre debe funcionar (la función de dibujo derecho de configuración se llama cuando se selecciona una opción en el cajón izquierdo).
O, ¿habría una mejor manera de hacer esto? ¿Quizás agregar dinámicamente el FrameLayout derecho cuando se ejecuta la función?
- ¿Cómo puedo añadir un elemento personalizado a un NavigationView con un diseño de menú?
- Cajón de navegación de ambos lados izquierdo y derecho en una sola actividad
- Cajón de navegación para múltiples actividades
- Cómo crear un cajón de navegación suave
- No muestre la superposición con el Cajón de navegación de Android
- Cajón de navegación para cambiar las actividades en lugar de fragmentos
- No se puede cambiar el color del icono del cajón de navegación en android
- Cambiar el color del ícono del cajón de navegación en la plantilla predeterminada de Android Studio
Esto inhabilita el golpe:
mDrawerLayout = (DrawerLayout) findViewById(R.id.navigation_drawer_right); mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
Y para habilitar el golpe:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
Sólo para mencionar una observación interesante.
En caso de que esté utilizando una estructura de diseño para tener los menús izquierdo y derecho como este:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <!-- MAIN CONTAINER --> <include layout="@layout/content_home" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/toolbar"/> <!-- LEFT SIDE MENU --> <RelativeLayout android:id="@+id/left_side_menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="start" android:visibility="visible" android:fitsSystemWindows="false" android:background="@color/green"> <!-- put some menu items in here --> </RelativeLayout> <!-- RIGHT SIDE MENU --> <RelativeLayout android:id="@+id/right_side_menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="end" android:visibility="visible" android:fitsSystemWindows="false" android:background="@color/gray"> <!-- put some items in here --> </RelativeLayout>
Usted va a tener un poco de tiempo tratando de desactivar sólo uno de los menús laterales con declaraciones como ésta:
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, findViewById(R.id.right_drawer))
Esto bloqueará todo el DrawerLayout y no podrá deslizar ninguno de los menús laterales.
Así, el método propuesto por @Alberto Maluje, bajo una de las respuestas anteriores, le dará más flexibilidad.
MDrawerLayout.setDrawerLockMode (DrawerLayout.LOCK_MODE_LOCKED_CLOSED, GravityCompat.END);
Una respuesta un poco actualizada. Tienes que pasar la vista del cajón derecho para desactivar el golpe en ella.
mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED, findViewById(R.id.right_drawer));
- Cómo crear tablas anidadas en la base de datos SQLite ?? (androide)
- Cómo crear un icono de barra de estado en el lado derecho? (Androide)