2016-07-29 35 views
2

Ich habe Navigation Schublade in meiner App verwendet. Wenn ein Benutzer auf ein Element klickt, wird es zu einer anderen Aktivität wechseln, aber wenn der Benutzer zur Seite der Schublade zurückkehrt, ist es immer noch geöffnet. Wie man diese Schublade schließt, sobald ihr Gegenstand angeklickt ist.schließen navigation drawer nach dem Klicken auf einen der Artikel

+0

Schließen Sie die Schublade, bevor Sie anrufen. für mehr Hilfe bitte posten Sie Ihren Code. –

+0

Ich habe Lösung geschrieben versuchen Sie es. wenn noch immer nicht gelöst, dann poste deinen Code hier –

+0

Mögliches Duplikat von [Wie schließe ich die Navigationsleiste, wenn ein Gegenstand davon gedrückt wird?] (http://stackoverflow.com/questions/19194526/how-to-close-navigation- drawer) -when-ein-item-is-pressed-from-it) –

Antwort

1

Verwenden Sie closeDrawer() Methode, um die Schublade zu schließen und starten Sie Ihre andere Aktivität auf den Hörer der Schublade.

Zum Beispiel.

@Override 
public void onDrawerClosed(View drawerView) { 
    super.onDrawerClosed(drawerView); 

    //Start your activity 
} 
1

Sie können drawerLayout.closeDrawers(); verwenden, um die NavigationDrawer zu schließen, bevor Sie in eine andere Aktivität gehen

0

Ich glaube, Sie closeDrawer() verpasst nur diese Methode aufrufen, bevor sie auf Klick Navigation Artikel andere Start Intent

drawerLayout.closeDrawer(GravityCompat.END); 
0
@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
int id = item.getItemId(); 
    // Create a new fragment and specify the fragment to show based on nav item clicked 
    Fragment fragment = null; 
    Class fragmentClass = null; 
    if (id == R.id.nav_item1) { 
     fragmentClass = home.class; 
     // Handle the camera action 
    } 
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
if(fragmentClass.newInstance() instanceof Fragment) { 
      fragment = (Fragment) fragmentClass.newInstance(); 

      if (fragmentClass.getSimpleName().equals("home")) { 

       // Insert the fragment by replacing any existing fragment 
       FragmentManager fragmentManager = getSupportFragmentManager(); 

       fragmentManager.beginTransaction().replace(R.id.home_layout, fragment).commit(); 
       // Highlight the selected item has been done by NavigationView 
       item.setChecked(true); 
       // Set action bar title 
       setTitle(item.getTitle()); 
       // Close the navigation drawer 
       drawer.closeDrawers(); 
      } 
     }