Navigation 3 è una nuova libreria di navigazione progettata per funzionare con Compose. Con Navigation 3, hai il controllo completo dello stack precedente e la navigazione verso e dalle destinazioni è semplice come aggiungere e rimuovere elementi da un elenco. Crea un sistema di navigazione flessibile per le app fornendo:
- Convenzioni per la modellazione di uno stack indietro, in cui ogni voce dello stack indietro rappresenta i contenuti a cui l'utente ha navigato
- Un'interfaccia utente che si aggiorna automaticamente con le modifiche dello stack precedente (incluse le animazioni)
- Un ambito per gli elementi nello stack precedente, che consente di conservare lo stato mentre un elemento si trova nello stack precedente
- Un sistema di layout adattivo che consente di visualizzare più destinazioni contemporaneamente e di passare facilmente da un layout all'altro.
- Un meccanismo che consente ai contenuti di comunicare con il layout principale (metadati)
A livello generale, implementi Navigation 3 nei seguenti modi:
- Definisci i contenuti a cui gli utenti possono accedere nella tua app, ognuno con una chiave univoca, e aggiungi una funzione per risolvere la chiave nei contenuti. Consulta Risolvere i problemi relativi alle chiavi per i contenuti.
- Crea uno stack indietro in cui le chiavi vengono inserite e rimosse man mano che gli utenti navigano nella tua app. Vedi Creare uno stack indietro.
- Utilizza un
NavDisplayper visualizzare lo stack indietro della tua app. Ogni volta che lo stack indietro cambia, l'interfaccia utente viene aggiornata per visualizzare i contenuti pertinenti. Consulta Visualizzare la cronologia. - Modifica le strategie di scena di
NavDisplayin base alle esigenze per supportare layout adattivi e piattaforme diverse.
Puoi visualizzare il codice sorgente completo di Navigation 3 su AOSP.
Miglioramenti alla navigazione Jetpack
Navigation 3 migliora l'API Jetpack Navigation originale nei seguenti modi:
- Fornisce un'integrazione più semplice con Compose
- Ti offre il controllo completo dello stack precedente
- Consente di creare layout in grado di leggere più di una destinazione dalla cronologia recente contemporaneamente, consentendo loro di adattarsi alle modifiche delle dimensioni della finestra e di altri input.
Scopri di più sui principi e sulle scelte di progettazione dell'API Navigation 3 in questo post del blog.
Esempi di codice
Il repository delle ricette contiene esempi di come utilizzare i componenti predefiniti di Navigation 3 per risolvere problemi di navigazione comuni.