¿Cómo cerrar el cajón de navegación cuando se presiona un elemento desde él?


82

Idealmente, el cajón de navegación debería cerrarse una vez que se haya presionado algún elemento, pero no sucede automáticamente. Cómo hacerlo ? ¡Gracias!


¿Qué biblioteca usas para obtener el cajón de navegación?
Ion Aalbers

Respuestas:


235

¡Entendido!

private DrawerLayout mDrawerLayout;
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerLayout.closeDrawers();

Funciona perfectamente bien.


2
Pregunta algo que valga la pena.
AXSM

3
¿Se puede cerrar sin animación?
Hamzeh Soboh

1
Hamzeh - mDrawerLayout.closeDrawer (Gravity.LEFT, falso); resultaría en cerrarlo sin animación
Psi-Ed

mDrawerLayout.closeDrawer (GravityCompat.START, falso);
user3560827

10

Para mí este funcionó -

mDrawerLayout.closeDrawer(Gravity.START, false);

5
DrawerLayout mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout)

closeDrawer(); // called when you want to close

public void closeDrawer() {
  if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
    mDrawerLayout.closeDrawer(GravityCompat.START);
  }
}

2

En la parte inferior derecha de onNavigationItemSelected, donde termina la caja del interruptor, debe corregir esto. mDrawerLayout.closeDrawers ();

public boolean onNavigationItemSelected(@NonNull MenuItem item) {
        switch (item.getItemId()){

        }
   mDrawerLayout.closeDrawers();
   return true;
}

2

Si tiene mDrawerLayout como diseño de su cajón, puede cerrarlo cuando esté abierto.

@Override
public void onBackPressed() {
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}

0
closeDrawer();//when you want to call

public void closeDrawer() {
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        mDrawerLayout.closeDrawer(GravityCompat.START);
    }
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.