El título lo explica todo. Todo lo que quiero hacer es saber si el cajón de navegación está abierto o no. Busqué mucho en la red y encontré el método, isDrawerOpen(int drawerGravity)
pero no pude encontrar una respuesta satisfactoria que explique cómo usarlo en un método. Agradecería que alguien me lo explicara.
¡Gracias por adelantado!
android
android-navigation
Chinmay Dabke
fuente
fuente
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList)
. mDrawerLayout es el cajón y mDrawerList es la vista de listaRespuestas:
Suponiendo que haya definido un diseño de cajón en xml:
fuente
Ese oyente usa :)
fuente
Utilizar:
mDrawerLayout.isDrawerOpen () método
Ejemplo:
fuente
De la siguiente manera puede encontrar que el cajón está abierto o cerrado.
fuente
La respuesta de shakeJ es la correcta, y recuerde que puede usar onDrawerSlide para poder activar otras funciones ... por ejemplo, lo usé para cambiar el Color de la barra de estado.
fuente
Detectar DrawerLayout.DrawerListener
DrawerLayout
abierto, cerrado y deslizanteCompruebe que el cajón está abierto
fuente
El método es el mismo en Kotlin.
Inicializar la vista DrawerLayout
val drawerLayout: DrawerLayout = findViewById(R.id.drawer_layout)
Compruebe si el cajón está abierto
if(drawerLayout.isDrawerOpen(GravityCompat.START)){ Log.d("Drawer","open") }
Si desea realizar acciones automáticamente cuando se abre o se cierra el cajón, puede hacer lo siguiente.
En su actividad principal, cree una clase interna que sea una subclase de DrawerLayout.DrawerListener . La clase DrawerLayout implementa la interfaz DrawerListener.
Pon tu acción en la función que quieras usar. En mi ejemplo, cierro el teclado en pantalla si el usuario interactúa con el cajón de navegación. Declare el InputMethodManager así en su actividad principal:
var imm: InputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE)
Agregue su DrawerListener personalizado al drawerLayout (lo puse en el método onCreate)
var drawerListener = CustomDrawer()
drawerLayout.addDrawerListener(drawerListener)
fuente
Puede ser, llegué tarde pero puedo compartir nueva información actualizada. En el código dado, configuro abrir / cerrar el cajón en la función onclick. Si el cajón está abierto, se cerrará de lo contrario se abrirá. Esta solución se basa en RXava DrawerLayout
(androidx.drawerlayout.widget.DrawerLayout)
. En mi código, abro Drawerlayout de derecha a izquierda.Nota: Si abre DrawerLayout desde el lado derecho, use "GravityCompat.END" y está abierto desde el lado izquierdo, luego use "GravityCompat.START" . Disfruta codificando .....
fuente