Ich habe ein Problem beim Hinzufügen der Fragmenttransaktionen zum Backstack. Ich habe eine Hauptaktivität, in der ich mein Layout mit einem Menüfragment bevölkere:
%Vor%}
Anschließend wählt der Benutzer im MainMenuFragment eine Option aus, die dazu führt, dass das Menüfragment durch ein anderes Fragment ersetzt wird:
%Vor%}
Was ich verstehe, sollte es so machen, dass, wenn der Benutzer die Taste auf seinem Gerät drückt, sie zurück zum Menüfragment gebracht werden, aber stattdessen wird die App beendet. Was mache ich falsch?
Ihr Code ist eine Verwechslung, Sie verwenden ActionBarActivity von appcompat und nicht getSupportFragmentManager () und der Fragment-Import sollte der appcompat-Code sein, wenn Sie ihn verwenden möchten. Wenn nicht, verwenden Sie Activity anstelle von ActionBarActivity und den einfachen Fragment Import mit FragmentManager
Fügen Sie dies Ihrer Aktivität hinzu android:configChanges="keyboardHidden|orientation|screenSize"
Dadurch wird Ihre Aktivität beim Rotieren nicht neu gestartet.
Verwende setRetainInstance(true)
auf Fragmenten.
Überschreiben Sie in Ihrer Aktivität :
%Vor%Und wahrscheinlich müssen Sie in jeder committed Fragment-Transaktion verwenden:
%Vor% Wenn Sie ein Fragment mit FragmentManager
hinzufügen oder ersetzen, müssen Sie das alte Fragment vor dem Aufruf von addToBackStack()
manuell zum Backstack mit commit()
hinzufügen.
Tags und Links android android-fragments back-stack