¿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!

Vipul J
fuente
¿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.

Vipul J
fuente
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);
Anirban
fuente
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);
  }
}
Ashif
fuente
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;
}
subbu
fuente
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();
    }
}
M Shafaei N
fuente
0
closeDrawer();//when you want to call

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