Das einzige, das bei mir funktioniert hat. Ich bin überrascht, dass dies nirgendwo in den Dokumenten erwähnt wird
– Driss Bounouar
25. August 2022 um 13:24 Uhr
Die Lösung, die ich gefunden habe, ist die Vermeidung der Hartcodierung von 0. Sie können das erste Element von navHostController.backQueue verwenden und seine ID an popUpTo übergeben: popUpTo(navHostController.backQueue.first().destination.id) Weitere Informationen finden Sie hier im Detail Erläuterung medium.com/@banmarkovic/…
– Ban Markovic
3. Januar um 12:59
bboyairwreck
Für eine konsistente wiederverwendbare Funktion, die die aktuelle Route nicht kennen muss, verwenden Sie diese NavOptionsBuilder-Erweiterungsfunktion
^ Ähnlich wie bei anderen Antworten wird popUpTo zur aktuellen Route angezeigt, aber anstatt die spezifische aktuelle Route zu benennen, wird sie stattdessen aus dem Backstack-Eintrag abgerufen.
Abgesehen von Bildschirmen enthält der Backstack Navigationsdiagramme, und sein Stamm ist immer das Erste im Backstack. Unser NavHostController enthält ein Diagramm, sodass Sie durch Einfügen seiner ID Ihren Backstack löschen können: