In diesem Dokument wird beschrieben, wie die Verwendung von Dialogzielen spezielle Überlegungen zur Verwaltung des Back-Stacks enthalten kann.
Übersicht
Mindestens ein Dialogfeldziel darf nur oben auf dem Back-Stack vorhanden sein.
Das liegt daran, dass NavController
automatisch alle Dialogfeldziele aus dem Stack entfernt, wenn der Nutzer ein Ziel aufruft, das kein Dialogziel ist. Dadurch wird sichergestellt, dass das aktuelle Ziel immer vollständig vor anderen Zielen auf dem Back Stack sichtbar ist.
Ziele können entweder gehostete Ziele, Aktivitätsziele oder Dialogfelder sein.
Beispiel
Wenn der Back-Stack ausschließlich aus gehosteten Zielen besteht, die den Navigationshost ausfüllen, und der Nutzer zu einem Dialogziel navigiert, könnte der Back-Stack in Abbildung 2 aussehen:
Wenn der Nutzer dann zu einem anderen Dialogziel navigiert, wird es oben im Back-Stack platziert, wie in Abbildung 3 dargestellt:
Wenn der Nutzer dann zu einem nicht schwebenden Ziel navigiert, werden zuerst alle Dialogziele vom oberen Rand des Back Stacks entfernt, bevor das neue Ziel aufgerufen wird (siehe Abbildung 4):