Ich möchte ein Multi-Fragment-Design für eine Aktivität in meiner App implementieren. Ich plane, mehrere "Bildschirme" (Layouts von Fragment) zu haben, zwischen denen ich (im Code zu Backstack) wechseln werde.
Nach meinem Verständnis wird das Layout der Fragmente in jedem Bildschirm mithilfe von Layoutobjekten (z. B. FrameLayout) festgelegt, die als Platzhalter für die Fragmente fungieren (die dieselbe ID teilen). Da verschiedene Bildschirme unterschiedliche Fragmentanordnungen haben (eine könnte FrameLayout und eine andere LinearLayout sein, usw.) frage ich mich: Wie wechsle ich zwischen Layouts von Fragmenten in Runtime?
Ich verstehe das Hinzufügen / Ersetzen von Fragmenten (via FragmentManager), aber ich würde gerne ein neues Layout hinzufügen, das sie innerhalb einer Live-Aktivität enthält. So ähnlich wie Transaktionen für "setContentView" ...
Wie mache ich das? Vielen Dank! Danny.
Es ist sicherlich möglich, dass Sie nur Ihre eigenen IDs generieren müssen. Die IDs können alles sein, aber sie dürfen nicht in Konflikt mit den aapt IDs stehen (die in R) und dürfen nicht negativ sein.
Das folgende Beispiel demonstriert dies mit einer Reihe fester IDs:
%Vor% Um zu einem anderen Layout zu wechseln, können Sie die Fragmente entfernen und an anderer Stelle hinzufügen.
Lass mich wissen, wie es geht.
BEARBEITEN: Um zu verdeutlichen, müssen Ansichten und Ansichtsgruppen nicht einmal instanziert und dann für die Lebensdauer der Aktivität beibehalten werden. Stellen Sie sicher, dass alle Fragmente entweder entfernt oder entfernt werden, bevor Sie die zugehörige Ansicht entfernen. Wenn Sie Ansichten außerhalb von onCreate erstellen und entfernen, sollten Sie außerdem sicherstellen, dass sie mithilfe von onSaveInstanceState wiederhergestellt werden können und den Prozess in onCreate wiederholen können. Lesen Sie das Diagramm hier und den Absatz über Konfigurationsänderungen .
Tags und Links android android-layout android-fragments