Ich weiß, dass diese Frage schon einmal gestellt wurde, aber die bisherigen Antworten haben mich so weit gebracht. Das Szenario ist wie folgt: Wir haben ein Dashboard-Fragment (A), das einen Benutzer zu einem Anmeldebildschirm (B) führt. Nach erfolgreicher Anmeldung gelangen sie zu einer Listenansicht (C). Beim Zurückdrücken würde ich gerne zu A zurückkehren, da der Benutzer den Anmeldebildschirm nicht noch einmal sehen muss. Außerdem speichern wir bei erfolgreicher Anmeldung die Details in den gemeinsamen Einstellungen und automatisieren beim nächsten Mal die Anmeldung in B, was alles wie geplant funktioniert.
Ich habe die folgende FragmentHelper-Methode:
public static void goToNextFragement(Fragment fragment, int container, boolean addToBackStack, Fragment ctx)
{
// Create new fragment and transaction
FragmentTransaction transaction = ctx.getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(container, fragment);
if(addToBackStack)
transaction.addToBackStack(null);
// Commit the transaction
transaction.commit();
}
In der Transaktion von B nach C habe ich den booleschen Wert addToBackStack auf false gesetzt, damit die transaction.addToBackStack(null);
nicht aufgerufen wird. Dies wiederum funktioniert gut, aber nach ist, wo mein Problem beginnt.
Wenn der Benutzer wieder auf C drückt und zu A zurückkehrt, kann ich immer noch die aufgeblähte Ansicht von C unter der Ansicht von A sehen.
Für jede Hilfe wären wir dankbar. Ich hoffe, mein Diagramm hilft, dies einfach zu halten.