Un chiaro esempio di dove bisogna tornare a una destinazione è quando la navigazione è circolare. Questo documento illustra questo caso d'uso.
Scenario
Immagina che la tua app abbia tre destinazioni: A, B e C. Contiene anche azioni da A a B, poi da B a C e poi da C ad A. Il grafico di navigazione corrispondente ha il seguente aspetto:
  A ogni azione di navigazione, NavController aggiunge la nuova destinazione al
back stack. Di conseguenza, navigare ripetutamente nel flusso nel diagramma
perché lo stack posteriore contenga più insiemi di ciascuna destinazione: A, B,
C, A, B, C, A, B, C.
Soluzione
Per evitare ripetizioni nella pila posteriore, specifica popUpTo() e
inclusive nella tua chiamata a NavController.navigate() o nel tuo
azione di navigazione.
Considera un caso in cui, dopo aver raggiunto la destinazione C, il back stack ne contiene uno
di ogni destinazione: A, B, C. Assicurarsi di aver definito
popUpTo() e inclusive nell'azione o nell'invito a navigate() che adottano
dell'utente dalla destinazione C alla destinazione A.
In questo caso, quando l'utente va dalla destinazione C alla destinazione A,
NavController compare anche nella A. Ciò significa che rimuove B e C dalla
lo stack. Con inclusive = true, fa risaltare anche la prima A, di fatto
stanno svuotando l'elenco filtri.
Crea implementazione
Di seguito è riportata l'implementazione della soluzione per la circolare popUpTo() in
Scrivi:
// When creating your `NavGraph` in your `NavHost`.
composable("c") {
    DestinationC(
        onNavigateToA = {
          navController.navigate("a") {
            popUpTo("a") {
              inclusive = true
            }
          }
        },
    )
}
Implementazione delle viste
Di seguito è riportata l'implementazione della soluzione per la circolare popUpTo in
Visualizzazioni:
<fragment
    android:id="@+id/c"
    android:name="com.example.myapplication.C"
    android:label="fragment_c"
    tools:layout="@layout/fragment_c">
    <action
        android:id="@+id/action_c_to_a"
        app:destination="@id/a"
        app:popUpTo="@+id/a"
        app:popUpToInclusive="true"/>
</fragment>