Wie schließe ich die Navigationsschublade, wenn ein Element gedrückt wird?

82

Im Idealfall sollte die Navigationsschublade geschlossen werden, sobald ein Element gedrückt wurde, dies geschieht jedoch nicht automatisch. Wie es geht ? Vielen Dank!

Vipul J.
quelle
Mit welcher Bibliothek erhalten Sie die Navigationsschublade?
Ion Aalbers

Antworten:

235

Ich habs!

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

Funktioniert einwandfrei.

Vipul J.
quelle
2
Fragen Sie etwas was was wert ist.
AXSM
3
Kann es ohne Animation geschlossen werden?
Hamzeh Soboh
1
Hamzeh - mDrawerLayout.closeDrawer (Gravity.LEFT, false); würde dazu führen, dass es ohne Animation geschlossen wird
Psi-Ed
mDrawerLayout.closeDrawer (GravityCompat.START, false);
Benutzer3560827
10

Für mich hat dieser funktioniert -

mDrawerLayout.closeDrawer(Gravity.START, false);
Anirban
quelle
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
quelle
2

Rechts unten in onNavigationItemSelected, wo das Switch-Gehäuse endet, sollten Sie dies korrigieren. mDrawerLayout.closeDrawers ();

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

        }
   mDrawerLayout.closeDrawers();
   return true;
}
subbu
quelle
2

Wenn Sie mDrawerLayout als Schubladenlayout haben, können Sie es schließen, wenn es geöffnet ist.

@Override
public void onBackPressed() {
    if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        this.mDrawerLayout.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
}
M Shafaei N.
quelle
0
closeDrawer();//when you want to call

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