Navigazione 3

Navigation 3 è una nuova libreria di navigazione progettata per funzionare con Compose. Con Navigation 3, hai il pieno controllo del back stack e puoi spostarti verso e dalle destinazioni aggiungendo e rimuovendo elementi da un elenco. Crea un sistema di navigazione dell'app flessibile fornendo:

  • Convenzioni per la modellazione di un back stack, in cui ogni voce del back stack rappresenta i contenuti a cui l'utente ha navigato
  • Un'interfaccia utente che si aggiorna automaticamente con le modifiche dello stack indietro (incluse le animazioni)
  • Un ambito per gli elementi del back stack, che consente di conservare lo stato mentre un elemento si trova nel back stack
  • 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 Navigation 3 nei seguenti modi:

  1. Definisci i contenuti a cui gli utenti possono navigare nella tua app, ognuno con una chiave univoca, e aggiungi una funzione per risolvere la chiave nei contenuti. Consulta Risolvere le chiavi nei contenuti.
  2. Crea un back stack in cui le chiavi vengono inserite e rimosse man mano che gli utenti navigano nella tua app. Consulta Creare un back stack.
  3. Utilizza un NavDisplay per visualizzare il back stack della tua app. Ogni volta che lo stack indietro cambia, l'interfaccia utente viene aggiornata per visualizzare i contenuti pertinenti. Consulta Visualizzare lo stack indietro.
  4. Modifica NavDisplay's strategie di scena in base alle esigenze per supportare layout adattivi e piattaforme diverse.
  5. Supporta i link diretti per navigare direttamente alle destinazioni.

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

Miglioramenti rispetto a Jetpack Navigation

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

  • Fornisce un'integrazione più semplice con Compose
  • Ti offre il pieno controllo del back stack
  • Consente di creare layout in grado di leggere più di una destinazione dal back stack contemporaneamente, consentendo loro di adattarsi alle modifiche delle dimensioni della finestra e ad altri input.

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

Esempi di codice

Il repository delle ricette contiene esempi di come utilizzare i blocchi predefiniti di Navigation 3 per risolvere le sfide di navigazione comuni.