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:
- 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 l'articolo Risolvere i problemi relativi alle chiavi nei contenuti.
- 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.
- Usa un
NavDisplay
per visualizzare la pila di app precedenti. Ogni volta che la pila interna cambia, l'interfaccia utente viene aggiornata per visualizzare i contenuti pertinenti. Vedi Visualizzare la pila precedente. - 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 Navigation 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.