navigation3
| Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
|---|---|---|---|---|
| 11 febbraio 2026 | 1.0.1 | - | - | 1.1.0-alpha04 |
Dichiara le dipendenze
Per aggiungere una dipendenza da navigation3, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.
Aggiungi le dipendenze per gli artefatti necessari nel file build.gradle per
la tua app o il tuo modulo:
Trendy
dependencies { implementation "androidx.navigation3:navigation3-runtime:1.1.0-alpha04" implementation "androidx.navigation3:navigation3-ui:1.1.0-alpha04" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.1.0-alpha04") implementation("androidx.navigation3:navigation3-ui:1.1.0-alpha04") }
Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa raccolta. Prima di segnalare un nuovo problema, dai un'occhiata ai problemi esistenti in questa raccolta. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.
Per saperne di più, consulta la documentazione di Issue Tracker.
Non sono disponibili note di rilascio per questo artefatto.
Versione 1.1
Versione 1.1.0-alpha04
11 febbraio 2026
androidx.navigation3:navigation3-*:1.1.0-alpha04 è stato rilasciato. La versione 1.1.0-alpha04 contiene questi commit.
Nuove funzionalità
- Navigation3 ora fornisce un nuovo DSL di metadati type-safe. Il linguaggio DSL utilizza una nuova interfaccia
MetadataKeyche consente di definire i tipi di chiave e valore che si vogliono fornire alla mappa dei metadati. Sono stati aggiunti anche nuoviNavMetadataKeyper le transizioniNavDisplay, in modo che possano essere utilizzati con il nuovo linguaggio DSLmetadataper aggiungere transizioni aNavDisplay. (Ic10ef, Ic049c,b/476213928)
Modifiche alle API
- L'interfaccia
OverlaySceneha un nuovo callback di sospensioneonRemoved. Questo callback viene richiamato dopo che una chiave associata alla scena viene rimossa dallo stack precedente, ma prima che esca dalla composizione. Ciò consente alle animazioni di uscita chiamate all'interno dionRemoveddi essere completate prima che la scena di overlay venga rimossa dalla composizione. (I29a72, b/440558061)
Correzioni di bug
- È stato corretto un errore per cui il passaggio di un
SharedTransitionLayoutaNavDisplayorememberSceneStatee l'utilizzo di unOverlayScenecausava un arresto anomalo perché l'utilizzo diSharedTransitionLayoutfunziona solo conNavEntriesvisualizzati come parte diAnimatedContenteOverlayScenevengono visualizzati separatamente nelle proprie finestre. (I1bb76, b/478664101)
Aggiornamento delle dipendenze
- A partire da
Navigation31.0.1:Navigation3ora dipende daNavigationEvent1.0.2. Questo corregge un erroreIllegalStateExceptioncausato dall'utilizzo diNavDisplaydurante le anteprime diAndroidStudio. (Id7212, b/477149762)
Versione 1.1.0-alpha03
28 gennaio 2026
androidx.navigation3:navigation3-*:1.1.0-alpha03 è stato rilasciato. La versione 1.1.0-alpha03 contiene questi commit.
Nuove funzionalità
- Ora puoi aggiungere dinamicamente metadati tenendo conto della chiave di voce tramite il linguaggio specifico del dominio
EntryProvider. (I942fb, b/474416976)
Versione 1.1.0-alpha02
14 gennaio 2026
androidx.navigation3:navigation3-*:1.1.0-alpha02 è stato rilasciato. La versione 1.1.0-alpha02 contiene questi commit.
Nuove funzionalità
SceneStrategyora supporta l'annidamento delle scene tramite una nuova funzionecalculatedScene(Scene). Ciò significa che iSceneStrategypossono essere personalizzati per fornire funzionalità aggiuntive ad altre scene. (I5df7c,b/440333896)
Versione 1.1.0-alpha01
3 dicembre 2025
androidx.navigation3:navigation3-*:1.1.0-alpha01 è stato rilasciato. La versione 1.1.0-alpha01 contiene questi commit.
Modifiche alle API
Navigation3ora supporta il trattamento delle scene come oggetto elemento condiviso. Ciò significa che, quando le scene cambiano, è possibile garantire una transizione fluida. Puoi attivare questa funzionalità passando unSharedTransitionScopeaNavDisplayo arememberSceneState. (I15868)
Versione 1.0
Versione 1.0.1
11 febbraio 2026
androidx.navigation3:navigation3-*:1.0.1 è stato rilasciato. La versione 1.0.1 contiene questi commit.
Aggiornamento delle dipendenze
Navigation3ora dipende daNavigationEvent1.0.2. Questo corregge un erroreIllegalStateExceptioncausato dall'utilizzo diNavDisplaydurante le anteprime diAndroidStudio. (Id7212, b/477149762)
Versione 1.0.0
19 novembre 2025
androidx.navigation3:navigation3-*:1.0.0 è stato rilasciato. La versione 1.0.0 contiene questi commit.
Ti presentiamo Navigation3.
- La libreria Navigation3 è ora stabile. Navigation3 è il primo approccio di AndroidX Compose alla navigazione.
- Per saperne di più, consulta il nostro post del blog sull'annuncio, visita le risorse e prova le ricette.
Versione 1.0.0-rc01
5 novembre 2025
androidx.navigation3:navigation3-*:1.0.0-rc01 è stato rilasciato. La versione 1.0.0-rc01 contiene questi commit.
Correzioni di bug
NavDisplayora imposta unLocalLifecycleOwnera livello diSceneche consente agli autori delle scene di determinare se tutte le transizioni sono terminate verificando cheLifecycle.StatesiaRESUMED. Il comportamento diLocalLifecycleOwnera livello diNavEntryrimane invariato: rimane limitato aSTARTEDse è in corso una transizione ed è ulteriormente limitato aCREATEDseNavEntryè stato estratto dallo stack precedente ed è in fase di animazione. (I03113, b/454045829)
Versione 1.0.0-beta01
22 ottobre 2025
androidx.navigation3:navigation3-*:1.0.0-beta01 è stato rilasciato. La versione 1.0.0-beta01 contiene questi commit.
Modifiche alle API
SceneStrategyScopeora ha solo un costruttore pubblico senza argomenti, adatto per testareSceneStrategyeScenerestituiti in isolamento. Per casi d'uso più complessi, utilizzarememberSceneState(). (I8440c, b/451679047)
Correzioni di bug
- È stato risolto il loop infinito quando si concatenano
SceneStrategyethen. (Iba3f0, b/450323470) - È stato risolto lo sfarfallio dello schermo durante lo scambio di
backStackpassato aNavDisplaye l'utilizzo di animazioni. (Ief7b5, b/450967248)
Versione 1.0.0-alpha11
8 ottobre 2025
androidx.navigation3:navigation3-*:1.0.0-alpha11 è stato rilasciato. La versione 1.0.0-alpha11 contiene questi commit.
Modifiche alle API
- Il metodo
calculateScenesuSceneStrategynon è più@Composable. Valuta invece di spostare questo lavoro nella costruzione del metodoSceneStrategy(ovvero in un metodorememberMySceneStrategy()) che ti consenta di definire completamente la durata di qualsiasi valorerememberSaveableo istruzione chiaverememberin base ai valori corretti. (If1733, b/448709506) - Il parametro
onBackperSceneStrategy.calculateSceneè stato spostato nel nuovo ambito del ricevitoreSceneStrategyScopeper rendere più chiaro che si tratta di un parametro facoltativo e fornire un punto di estensione per le future funzionalità di Navigation3. (I3aea3, b/448460407) - La lambda
onBackpassata aNavDisplaye aSceneStrategynon fornisce più un parametrocount: Intper indicare quando devono essere visualizzate più voci. Al contrario, la lambda() -> Unitverrà ora chiamata più volte di seguito nel raro caso in cui le richieste di Scene generino più voci. (Idedb5, b/446989346) - Rimuovi la classe
NavEntryWrappere sostituisci la sua funzionalità con una classeNavEntryfinale con un nuovo costruttore secondario che accetta unNavEntrycon nuovi contenuti. In questo modo continueremo a supportare l'inserimento di una voce con nuovi contenuti. (I7da2a, b/444447130) - La funzione
navEntryDecorator, che crea e restituisce unNavEntryDecorator, è stata rimossa e sostituita dalla classeNavEntryDecorator, ora resa pubblica e aperta alla creazione di sottoclassi. (If81f8, b/444447434, b/447381176) SavedStateNavEntryDecoratorè stato rinominato inSaveableStateHolderNavEntryDecoratorperché decora le voci con unSaveableStateHolder. Il decoratore è stato anche sottoposto a refactoring da funzione a classe, poiché è funzionalmente una factory perNavEntryDecorator. (Ie6013, b/447381176)- Le visualizzazioni personalizzate che utilizzano
SceneStatein alternativa aNavDisplaynon devono più utilizzare la composizione localeLocalEntriesToRenderInCurrentScene, che ora è interna. (Ic40ef, b/414668196) SceneSetupNavEntryDecoratorerememberSceneSetupNavEntryDecorator()sono stati rimossi dalla superficie dell'API pubblica. Questa funzionalità ora è inclusa per impostazione predefinita senza che tu debba includerla manualmente. (Ieae42, b/444479133)NavEntry,DialogScene,SinglePaneSceneeSceneStateora implementano tutti l'uguaglianza. (I96121)- L'interfaccia della scena ha un nuovo campo di metadati per allegare metadati specifici della scena per NavDisplay. Ciò consente a una scena di ignorare i metadati di
NavDisplay, ad esempio con le transizioni. (I1fd96, b/443955625) - Semplifica la firma
rememberNavBackStackrimuovendo il parametro del tipo generico ridondante. La funzione ora accettavararg elements: NavKey. (I03e45) - Le animazioni predefinite per
NavDisplayora fanno parte dell'API comune, che consente di chiamarle da tutte le piattaforme. (I71af9, b/447147159) - Rinomina
EntryProviderBuilderinEntryProviderScopeper riflettere con precisione che la classe è un DSL Kotlin che fornisce un ambito per creareNavEntries. (Ia7465)
Correzioni di bug
rememberNavBackStack()ora applica la serializzazione polimorfica per NavKey e richiede unSavedStateConfigurationpersonalizzato configurato per garantire il corretto ripristino dello stato. KDoc è stato aggiornato per riflettere il requisito che tutti i sottotipi di NavKey devono essere registrati in SerializersModule fornito. (I6de37,I782f2, b/446664383)
Versione 1.0.0-alpha10
24 settembre 2025
androidx.navigation3:navigation3-*:1.0.0-alpha10 è stato rilasciato. La versione 1.0.0-alpha10 contiene questi commit.
Modifiche alle API
- Aggiungi un nuovo overload
NavDisplayche accetta un elenco diNavEntry<T>decorato darememberDecoratedNavEntries. (I4025b, b/441940314) DialogSceneè stato spostato in un nuovo pacchetto. (Ia5840)- Rimuovi l'API pubblica
DecorateNavEntry. Utilizza invecerememberDecoratedNavEntriesper racchiudere una NavEntry con un elenco di decoratori. (Id8c09) - L'interfaccia utente Navigation3 ora fornisce nuove proprietà
transitionSpecpredefinite. (Ibcabd) - È stato aggiunto un nuovo oggetto
SceneStateper facilitare la gestione delle scene. Viene inoltre fornito un nuovo sovraccaricoNavDisplayche accettaSceneStateeNavigationEventState. (Idfb46, b/444479133) NavDisplayora ti consente di personalizzare le transizioni in base a ciò cheScenestai andando e da dove stai venendo, esaminandoTransition,currentStateetargetState. (I906cc, b/443872322)NavigationEventInfoora è unabstract classanziché uninterface. Aggiorna tutte le implementazioni personalizzate in modo che ereditino dalla classe (ad es.data class MyInfo : NavigationEventInfo()). (I1e59c, b/444734264)- Le API del gestore
navigationevent-composesono aggiornate.NavigationEventHandlereNavigationBackHandler(e varianti) ora supportano un nuovo overload che accettaNavigationEventStates sollevati. Gli overload semplici (che accettanocurrentInfo) vengono conservati e ora utilizzano internamente questo nuovo modello di stato. (Ic3251, b/444734264) - Tutte le API Scene sono state spostate da navigation3-ui a navigation3-runtime. Ciò significa che ora sono disponibili su tutte le piattaforme supportate da navigation3-runtime. (I431d0, b/444449993)
- È stato aggiunto un nuovo overload
rememberDecoratedNavEntriesche accetta un elenco diNavEntryda decorare. Le voci di input possono essere già decorate con altri decoratori di voci. (I5a034, b/444230270) - Rimuovi i parametri di tipo jolly navigation3 (I02540)
- È stata migliorata la gestione dei generici per il linguaggio specifico del dominio
entryProvider. Se in passato importaviandroidx.navigation3.runtime.entry, non è più necessario. (I299fc) - Limita l'overflow
NavBackStackSerializerbasato sulla reflection ad Android. In questo modo, si evitano errori di serializzazione implicita in fase di runtime su piattaforme non Android imponendo l'utilizzo dell'overloadSavedStateConfigurationesplicito nel codice multipiattaforma. (I73313, b/420443609) - Rendi
NavigationEvent'sswipeEdgeun@IntDef(Icee54, b/443950342) - Limita la serializzazione di
NavBackStackad Android. In questo modo si evitano errori di runtime su piattaforme non Android. Per il salvataggio dello stato multipiattaforma, utilizza l'overloadrememberNavBackStackcon unSavedStateConfigurationesplicito. (I1e418, b/420443609)
Correzioni di bug
- Correzione dell'arresto anomalo durante l'indietro predittivo quando
NavDisplaynidificato ha una sola voce secondaria. (I2cdc0, b/441933162)
Versione 1.0.0-alpha09
10 settembre 2025
androidx.navigation3:navigation3-*:1.0.0-alpha09 è stato rilasciato. La versione 1.0.0-alpha09 contiene questi commit.
Modifiche alle API
DecoratedNavEntryProviderè stato sostituito conrememberDecoratedNavEntries, che crea e restituisce NavEntry decorate con l'elenco dei decoratori forniti (I0fe1c, b/441328236)NavBackStackè ora generico rispetto al tipoNavKey. In questo modo, app e librerie possono definire tipi di chiavi personalizzati per i propri back stack, anziché essere limitate aNavKey. (I4d190,Iad2f4, b/420443609)NavBackStackora è@kotlinx.serialization.Serializable, il che consente di salvare e ripristinare lo stato di navigazione in caso di interruzione del processo e modifiche alla configurazione senza boilerplate aggiuntivo. (I2c3cf, b/420443609)RememberNavBackStackè stato spostato incommonMainper garantire che venga fornito su tutti i target delle piattaforme. (Id69e7, b/420443609)
Correzioni di bug
NavDisplayora sposta correttamente ogni singoloNavEntrynelLifecycle.Statecorretto. (I30aac, b/440145700)- È stato risolto un problema per cui
NavDisplayignorava qualsiasiNavigationEventDispatcherOwnernidificato impostato tramiteLocalNavigationEventDispatcherOwnerdiNavigationEvent. (I6224a)
Modifiche alle dipendenze
- Navigation3 ora dipende da NavigationEvent Alpha08.
Versione 1.0.0-alpha08
27 agosto 2025
androidx.navigation3:navigation3-*:1.0.0-alpha08 è stato rilasciato. La versione 1.0.0-alpha08 contiene questi commit.
Nuove funzionalità
- Sono stati aggiunti nuovi target Kotlin MultiPlatform (KMP) agli artefatti
Navigation3 Runtime.Navigation3 Runtimeora supporta le seguenti piattaforme: JVM (Android e desktop), Native (Linux, iOS, watchOS, macOS, MinGW) e Web (JavaScript, WasmJS). (I55078, b/424410398, b/419294028, b/419046226). Nota: non vengono forniti target KMP per l'artefattoNavigation3 UI. Su altre piattaforme, dovrai implementare unNavDisplaypersonalizzato. Se vuoi che venga supportato, vota il problema di Jetbrains qui e monitora i progressi per ulteriore assistenza. - L'oggetto
NavDisplayInfoora è pubblico e può essere utilizzato per recuperare l'elenco delle voci visibili daNavDisplay. (Ibc91f)
Modifiche alle API
- È stato aggiunto un nuovo
NavBackStackSerializerda utilizzare insieme arememberNavBackStackper eseguire il ripristino dello stato.rememberNavBackStack()ora accetta anche unSavedStateConfigurationche può essere utilizzato per fornire la tua configurazione. (I2f4d2, I4cd58, b/420443609)
Correzioni di bug
- Risolto un problema per cui la navigazione causava l'attivazione di eventi del ciclo di vita errati. (I8bf6d, b/425901162, b/434109022)
Problemi noti
- È stato introdotto un bug da I8bf6d che ha fatto sì che i cicli di vita si basassero sulle scene anziché sulle singole voci, il che ha interrotto il ciclo di vita per tutti i casi in cui
keyfornito aNavEntrynon è unStringoNavEntrynon ha sostituitocontentKeye lo ha impostato uguale akey(tieni presente che questa operazione impone che la chiave possa essere salvata in unBundle). Il problema è stato risolto per la prossima release. (b/440145700)
Versione 1.0.0-alpha07
13 agosto 2025
androidx.navigation3:navigation3-*:1.0.0-alpha07 è stato rilasciato. La versione 1.0.0-alpha07 contiene questi commit.
Aggiornamento di MinSdk
- Il minSdk predefinito per AndroidX è stato spostato dall'API 21 all'API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
Modifiche alle API
SavedStateNavEntryDecoratorora utilizzaSaveableStateRegistryintegrato inSaveableStateProviderper salvare e ripristinare gli stati. (If8d9a)- Ora
predictivePopTransitionSpecriceve il bordo di scorrimento come parametro, il che ti consente di personalizzare la transizione in base al bordo da cui l'utente ha iniziato il gesto Indietro predittivo. (I753a8)
Correzioni di bug
- Risolto un problema che causava il ricalcolo infinito delle scene personalizzate perché la scena più recente non veniva memorizzata. (I7ba84, b/418153031)
Aggiornamento delle dipendenze
- Navigation3 ora dipende da Navigation Event
1.0.0-alpha06.
Versione 1.0.0-alpha06
30 luglio 2025
androidx.navigation3:navigation3-*:1.0.0-alpha06 è stato rilasciato. La versione 1.0.0-alpha06 contiene questi commit.
Aggiornamento delle dipendenze
- Navigation3 ora dipende da Navigation Event
1.0.0-alpha05.
Versione 1.0.0-alpha05
2 luglio 2025
androidx.navigation3:navigation3-*:1.0.0-alpha05 è stato rilasciato. La versione 1.0.0-alpha05 contiene questi commit.
Modifiche al comportamento
- Lo stato di
NavEntryora si basa rigorosamente sull'elenco corrente dei decoratori passati aNavDisplay. Ciò significa che i decoratori devono essere scambiati lungo gli stack precedenti in caso di più stack precedenti per preservare lo stato delle NavEntry nello stack precedente. In caso contrario, gli stati verranno cancellati come se le voci fossero state estratte (anziché scambiate). (I7a759, b/428033667)
Versione 1.0.0-alpha04
18 giugno 2025
androidx.navigation3:navigation3-*:1.0.0-alpha04 è stato rilasciato. La versione 1.0.0-alpha04 contiene questi commit.
Modifiche alle API
NavEntry.contentè ora privato. Per richiamare i contenutiNavEntry, chiama la nuova APINavEntry.Content(), che non richiede più un parametrokeyper essere richiamata. (Icd0fd, b/420991203)NavEntry.keyora è un campo privato.NavEntrye i relativi stati devono essere identificati dal nuovo campocontentKey, generato dalla nuova lambdacontentKeyFactorye impostato per impostazione predefinita su un hash salvabile generato daNavEntry.key(I81a6c, b/422001357, b/420991203 I2d7d4, b/420991203, b/422841812)
Modifiche alle dipendenze
- Navigation3 ora dipende dal nuovo artefatto
androidx.navigationevent.compose.
Versione 1.0.0-alpha03
4 giugno 2025
androidx.navigation3:navigation3-*:1.0.0-alpha03 è stato rilasciato. La versione 1.0.0-alpha03 contiene questi commit.
Correzioni di bug
Navigation3non cancellerà più gli stati dei decoratori perbackStacksche sono stati sostituiti con un'altra istanza dibackStack. (I28a42, b/415076044)
Versione 1.0.0-alpha02
23 maggio 2025
androidx.navigation3:navigation3-*:1.0.0-alpha02 è stato rilasciato. La versione 1.0.0-alpha02 contiene questi commit.
Correzioni di bug
- È stato risolto un problema relativo a
SavedStateNavEntryDecoratorche causava conflitti per classi di dati diverse con gli stessi valori delle proprietà. (b/418070648, Iff4775) - È stato risolto un problema relativo a una classe mancante che causava arresti anomali durante l'esecuzione senza dichiarare dipendenze esplicite. (b/419049149, I4b4ed)
Versione 1.0.0-alpha01
20 maggio 2025
androidx.navigation3:navigation3-*:1.0.0-alpha01 è stato rilasciato. La versione 1.0.0-alpha01 contiene questi commit.
Nuove funzionalità
Navigation3 è una nuova libreria di navigazione creata appositamente per gestire la navigazione in-app di Jetpack Compose. L'artefatto androidx.navigation3.runtime fornisce i componenti di base, mentre l'artefatto androidx.navigation3.ui fornisce il livello UI tramite l'API NavDisplay. Gli sviluppatori possono fornire il proprio stato direttamente alla funzione componibile NavDisplay, che modifica i contenuti in base alle modifiche dello stato dello sviluppatore.
@Serialiable object Home : NavKey
@Serialiable object Chat : NavKey
val backStack = rememberNavBackStack(Home)
NavDisplay(backStack, entryProvider = entryProvider {
entry<Home> {
Column {
Text(“Home”)
Button(onClick = { backStack.add(Chat) } ) {
Text(“Go to Chat”)
}
}
}
entry<Chat> { /* My Composable Content */ }
})
Per maggiori informazioni, consulta la guida Navigation3.