Ich stoße auf seltsames Verhalten in Bezug auf die Zurück-Taste und Fragments
. Hier ist meine Situation, ich habe 3 Fragments
, f1
, f2
und f3 .
Es gibt eine Button
innerhalb f1
die f2
bringt:Zurück-Taste zeigt falsches Fragment an
getSupportFragmentManager()
.beginTransaction()
.addToBackStack("f1")
.replace(R.id.fragHook, f2,
TAG).commit();
Diese Transaktion perfekt funktioniert. Ich kann zwischen den 2 Fragmenten hin und her pendeln. Innerhalb von f2 habe ich eine RecyclerView
, die der Benutzer eine Zelle auswählen kann. Wenn der Benutzer eine Zelle auswählt, bringe ich f3
, aber ich füge nicht f2
zum Backstack:
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragHook, f3)
.commit();
Die Fragment
f3
richtig angezeigt wird. Und beim ersten Mal mit diesem Prozess, ich klicke auf den Zurück-Button und f1
wird wieder korrekt angezeigt. Das Problem kommt jetzt, wenn ich dieselben Schritte wiederhole. Die Button
innerhalb f1
wird angeklickt, wodurch f2
mit der RecyclerView
angezeigt wird. Dann wird eine Zelle ausgewählt, die f3
ein zweites Mal aufruft. Wenn ich jetzt auf die Zurück-Schaltfläche klicke, erscheint das Fragment f2
.
Ich überprüft und die onCreateView
wird für beide f1
und f2
aufgerufen. Was könnte dazu führen, dass f2
Fragment
erscheint?