Was bedeutet addToBackStack (null) gefolgt von einem commit ()?
Zitieren von Dokumenten:
Durch Aufrufen von addToBackStack () wird die Ersetzungstransaktion im Backstack gespeichert, sodass der Benutzer die Transaktion stornieren und das vorherige Fragment durch Drücken der Zurück-Taste wiederherstellen kann.
Wenn Sie der Transaktion mehrere Änderungen hinzufügen (z. B. ein weiteres add () oder remove ()) und addToBackStack () aufrufen, werden alle Änderungen, die vor dem Aufruf von commit () vorgenommen wurden, als einzelne Transaktion und die Schaltfläche Zurück zum Backstack hinzugefügt wird sie alle zusammen umkehren.
Die Reihenfolge, in der Sie Änderungen an einer FragmentTransaction hinzufügen, spielt keine Rolle, außer:
Sie müssen commit()
zuletzt anrufen . Wenn Sie demselben Container mehrere Fragmente hinzufügen, bestimmt die Reihenfolge, in der Sie sie hinzufügen, die Reihenfolge, in der sie in der Ansichtshierarchie angezeigt werden.
Sie müssen sich also zuletzt festlegen.
Warum müssen Sie einen Nullparameter an addToBackStack übergeben?
Es muss nicht null sein, es kann eine Zeichenfolge sein. Wenn Sie nicht möchten, übergeben Sie einfach null.
public abstract FragmentTransaction addToBackStack (String name)
Hinzugefügt in API-Level 11 Fügen Sie diese Transaktion dem Backstack hinzu. Dies bedeutet, dass die Transaktion nach dem Festschreiben gespeichert wird und ihren Vorgang umkehrt, wenn sie später vom Stapel entfernt wird.
Parametername Ein optionaler Name für diesen Backstack-Status oder null.
Über:
Dieser Code scheint nutzlos zu sein, da ich den Code ohne die letzte Zeile .addToBackStack (null) .commit () ausgeführt habe und er ohne Probleme ausgeführt wurde
Wenn Sie zum vorherigen Fragment navigieren möchten, fügen Sie es dem Backstack hinzu. Es hängt also davon ab, ob Sie das Fragment zum Backstack hinzufügen möchten.
Wie bekomme ich dieses Fragment, nachdem es so hinzugefügt wurde?
Sie haben bereits die Fragmentinstanz firstFragment
. Ich weiß also nicht, was Sie damit meinen, dass Sie das Fragment später erhalten.
Mehr Informationen @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)