Navigazione 3

Navigation 3 è una nuova libreria di navigazione progettata per funzionare con Compose. Con Navigation 3 hai il controllo completo sulla pila di navigazione precedente e passare alle destinazioni e tornare indietro è facile come aggiungere e rimuovere elementi da un elenco. Crea un sistema di navigazione flessibile per le app fornendo:

  • Convenzioni per la modellazione di una serie di elementi Indietro, in cui ogni voce rappresenta i contenuti a cui l'utente ha eseguito la navigazione
  • Un'interfaccia utente che si aggiorna automaticamente con le modifiche alla pila di app precedenti (incluse le animazioni)
  • Un ambito per gli elementi nella pila posteriore, che consente di conservare lo stato mentre un elemento si trova nella pila posteriore
  • Un sistema di layout adattivo che consente di visualizzare più destinazioni contemporaneamente e di passare facilmente da un layout all'altro
  • Un meccanismo per consentire ai contenuti di comunicare con il layout principale (metadati)

A livello generale, puoi implementare la navigazione 3 nei seguenti modi:

  1. Definisci i contenuti a cui gli utenti possono accedere nella tua app, ognuno con una chiave distinta, e aggiungi una funzione per risolvere la chiave in base ai contenuti. Consulta Risolvere i problemi relativi alle chiavi nei contenuti.
  2. Crea una serie di elementi precedenti in cui le chiavi vengono inserite e rimosse man mano che gli utenti navigano nella tua app. Consulta Creare una serie di elementi precedenti.
  3. Usa un NavDisplay per visualizzare la pila di app precedenti. Ogni volta che la pila interna cambia, l'interfaccia utente viene aggiornata per visualizzare contenuti pertinenti. Consulta Visualizzare la serie di messaggi precedenti.
  4. Modifica le strategie di scena di NavDisplay in base alle esigenze per supportare layout adattabili e piattaforme diverse.

Puoi visualizzare il codice sorgente completo di Navigazione 3 su AOSP.

Miglioramenti a Jetpack Navigation

Navigation 3 migliora l'API Jetpack Navigation originale nei seguenti modi:

  • Offre un'integrazione più semplice con Compose
  • Offre il controllo completo della pila precedente
  • Consente di creare layout che possono leggere contemporaneamente più destinazioni dall'elenco di app precedenti, adattandosi alle modifiche delle dimensioni della finestra e di altri input.

Scopri di più sui principi e sulle scelte di progettazione dell'API di Navigation 3 in questo post del blog.

Esempi di codice

Il repository di ricette contiene esempi di come utilizzare i componenti di base di Navigation 3 per risolvere i problemi di navigazione più comuni.