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!


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.


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);

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

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;
}

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();
    }
}

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

public void closeDrawer() {
    if (mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
        mDrawerLayout.closeDrawer(GravityCompat.START);
    }
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.