navigation3
Ultimo aggiornamento | Release stabile | Candidato per la release | Release beta | Release alpha |
---|---|---|---|---|
24 settembre 2025 | - | - | - | 1.0.0-alpha10 |
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.0.0-alpha10" implementation "androidx.navigation3:navigation3-ui:1.0.0-alpha10" }
Kotlin
dependencies { implementation("androidx.navigation3:navigation3-runtime:1.0.0-alpha10") implementation("androidx.navigation3:navigation3-ui:1.0.0-alpha10") }
Per saperne di più sulle dipendenze, consulta Aggiungi dipendenze di build.
Feedback
Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. 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 ulteriori informazioni, consulta la documentazione di Issue Tracker.
Non sono disponibili note di rilascio per questo artefatto.
Versione 1.0
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
NavDisplay
che accetta un elenco diNavEntry<T>
decorato darememberDecoratedNavEntries
. (I4025b, b/441940314) DialogScene
è stato spostato in un nuovo pacchetto. (Ia5840)- Rimuovi l'API pubblica
DecorateNavEntry
. Utilizza invecerememberDecoratedNavEntries
per racchiudere una NavEntry con un elenco di decoratori. (Id8c09) - L'interfaccia utente Navigation3 ora fornisce nuove proprietà
transitionSpec
predefinite. (Ibcabd) - È stato aggiunto un nuovo oggetto
SceneState
per facilitare la gestione delle scene. Inoltre, fornisce un nuovo sovraccarico diNavDisplay
che prendeSceneState
eNavigationEventState
. (Idfb46, b/444479133) NavDisplay
ora ti consente di personalizzare le transizioni in base a ciò cheScene
stai andando e da dove stai venendo, esaminandoTransition
,currentState
etargetState
. (I906cc, b/443872322)NavigationEventInfo
ora è unabstract class
anziché 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-compose
sono aggiornate.NavigationEventHandler
eNavigationBackHandler
(e varianti) ora supportano un nuovo overload che accettaNavigationEventState
s 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
rememberDecoratedNavEntries
che accetta un elenco diNavEntry
da 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
NavBackStackSerializer
basato 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'overloadSavedStateConfiguration
esplicito nel codice multipiattaforma. (I73313, b/420443609) - Rendi
NavigationEvent
'sswipeEdge
un@IntDef
(Icee54, b/443950342) - Limita la serializzazione di
NavBackStack
ad Android. In questo modo, si evitano errori di runtime su piattaforme non Android. Per il salvataggio dello stato multipiattaforma, utilizza l'overloadrememberNavBackStack
con unSavedStateConfiguration
esplicito. (I1e418, b/420443609)
Correzioni di bug
- Correzione dell'arresto anomalo durante l'indietro predittivo quando
NavDisplay
nidificato 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 per il 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)NavBackStack
ora è@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 incommonMain
per garantire che venga fornito su tutti i target delle piattaforme. (Id69e7, b/420443609)
Correzioni di bug
NavDisplay
ora sposta correttamente ogni singoloNavEntry
nelLifecycle.State
corretto. (I30aac, b/440145700)- È stato risolto un problema per cui
NavDisplay
ignorava qualsiasiNavigationEventDispatcherOwner
nidificato impostato tramiteLocalNavigationEventDispatcherOwner
diNavigationEvent
. (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 Runtime
ora supporta le seguenti piattaforme in totale: 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 unNavDisplay
personalizzato. Se vuoi che venga supportato, vota il problema di Jetbrains qui e monitora i progressi per ulteriore assistenza. - L'oggetto
NavDisplayInfo
ora è pubblico e può essere utilizzato per recuperare l'elenco delle voci visibili daNavDisplay
. (Ibc91f)
Modifiche alle API
- È stato aggiunto un nuovo
NavBackStackSerializer
da utilizzare insieme arememberNavBackStack
per eseguire il ripristino dello stato.rememberNavBackStack()
ora accetta anche unSavedStateConfiguration
che 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
key
fornito aNavEntry
non èString
oNavEntry
non ha sostituitocontentKey
e lo ha impostato uguale akey
(tieni presente che questa operazione impone che la chiave possa essere salvata inBundle
). 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
SavedStateNavEntryDecorator
ora utilizza la funzionalitàSaveableStateRegistry
integrata inSaveableStateProvider
per salvare e ripristinare gli stati. (If8d9a)- Ora
predictivePopTransitionSpec
riceve 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 Evento di navigazione
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 Evento di navigazione
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
NavEntry
ora 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 parametrokey
per essere richiamata. (Icd0fd, b/420991203)NavEntry.key
ora è un campo privato.NavEntry
e i relativi stati devono essere identificati dal nuovo campocontentKey
, generato dalla nuova lambdacontentKeyFactory
e 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
Navigation3
non cancellerà più gli stati dei decoratori perbackStacks
che 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 con
SavedStateNavEntryDecorator
che causava conflitti per diverse classi di dati 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 saperne di più, consulta la guida Navigation3.