0

So habe ich eine Aktivität mit einem Fragment darin, das Fragment hat eine Navigationsschublade und den Inhalt der Seite. Wenn ich die Schublade öffne und auf ein Objekt klicke, wird das Fragment durch ein neues Fragment ersetzt. Wenn ich die Zurück-Taste drücke, rufe ich popBackStack auf dem Fragment-Manager auf und es geht zurück zum ersten Fragment, aber die Navigationsleiste ist geöffnet.Navigationsschublade geöffnet nach dem Aufspringen Fragment Backstack

Ein paar Dinge zu beachten: Wenn ich einen Gegenstand in der Schublade drücke, rufe ich closeDrawers auf dem Schubladen-Layout auf und die Schublade schließt sich, während das Fragment ersetzt wird. Wenn ich die UP-Taste in der Aktionsleiste drücke, kann ich den Fragment-Container durch ein NEUES Hauptfragment ersetzen, aber ich würde es vorziehen, das Fragment vom Stapel zu entfernen.

Warum bleibt die Schublade offen, wenn ich zum Hauptfragment zurückkehre?

Im Klick-Listener für Schublade Artikel:

case 4: 
     drawerLayout.closeDrawers(); 
     Fragment aboutFragment = new AboutFragment(); 
     fragmentTransaction.replace(R.id.fragment_container, aboutFragment, "AboutFragment"); 
     fragmentTransaction.addToBackStack(null); 
     fragmentTransaction.commit(); 
     break; 

Dies ist die UP in der Aktionsleiste Pfeil, dies funktioniert aber ist Hacky:

case android.R.id.home: 
    getFragmentManager() 
      .beginTransaction() 
      .replace(R.id.fragment_container, new MainActivityFragment()) 
      .commit(); 
    break; 

Antwort

0

Im onCreateView Ihres firt Fragment, Schließen Sie einfach die Schublade mDrawerLayout.closeDrawer (Gravity.LEFT);

+0

ich das leider habe versucht, ersetzen. Es zeigt immer noch, dass es geöffnet ist – Stampede10343

+0

Hast du es als die letzte Aussage deiner Navigationsschublade gesetzt? –

+0

Oder eine weitere Sache, die Sie tun können, ist die Navigationsleiste zu schließen, nachdem Sie() in der Zurück-Taste gedrückt haben –

0

drawerLayout.closeDrawers(); 

mit

drawerLayout.closeDrawer();