Per attivare le animazioni Indietro predittive, devi attivare il supporto del gesto Indietro predittivo. Per attivare questa funzionalità, aggiungi android:enableOnBackInvokedCallback="true
" al
tag <application>
o ai singoli tag <activity>
all'interno del file AndroidManifest.xml
.
Attivare le animazioni di sistema predefinite
Le animazioni di sistema per il ritorno alla schermata Home, il passaggio da un'attività all'altra e il passaggio da un'attività all'altra sono disponibili su Android 15 e versioni successive per le app che hanno eseguito la migrazione alle API di gestione del pulsante Indietro supportate.
- Torna alla home page: consente all'utente di tornare alla schermata Home.
- Tra attività: transizioni tra attività all'interno dell'app.
- Tra attività: transizioni tra attività.
Queste animazioni sono attivate per impostazione predefinita su Android 15 e versioni successive. Sui dispositivi con Android 13 o 14, gli utenti possono attivarli tramite le Opzioni per sviluppatori.
Per ottenere le animazioni di sistema, aggiorna la dipendenza Activity
AndroidX
a 1.6.0 o versioni successive.
Attivare il gesto Indietro predittivo con Composizione navigazione
Per utilizzare il pulsante Indietro predittivo in Componi navigazione, assicurati di utilizzare la libreria navigation-compose
2.8.0 o versioni successive.
La funzionalità di navigazione Componi applica automaticamente transizioni tra le schermate quando l'utente scorra verso il retro:
Durante la navigazione, puoi creare transizioni personalizzate con popEnterTransition
e popExitTransition
. Se applicati al
NavHost
, questi modificatori ti consentono di definire l'animazione delle schermate di entrata e di uscita. Puoi utilizzarli per creare una serie di effetti, come la scalabilità, la dissolvenza o lo scorrimento.
In questo esempio, scaleOut
viene utilizzato all'interno di popExitTransition
per ridurre la schermata di uscita quando l'utente torna indietro. Inoltre, il parametro transformOrigin
determina il punto intorno al quale avviene l'animazione di ridimensionamento. Per impostazione predefinita, è il centro dello schermo (0.5f, 0.5f
).
Puoi modificare questo valore per fare in modo che la scalatura abbia origine da un punto diverso.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
Questo codice produce il seguente risultato:
popEnterTransition
e popExitTransition
controllano in modo specifico le animazioni quando viene visualizzata la pila precedente, ad esempio con un gesto Indietro. Puoi anche utilizzare enterTransition
e exitTransition
per definire le animazioni per l'ingresso e l'uscita dai composabili in generale, non solo per il pulsante Indietro predittivo. Se imposti solo enterTransition
e exitTransition
, questi vengono utilizzati sia per la navigazione normale sia per il popping della pila di ritorno. Tuttavia, l'utilizzo di popEnterTransition
e popExitTransition
ti consente di creare animazioni distinte per la navigazione a ritroso.
Integrazione con le transizioni degli elementi condivisi
Le transizioni degli elementi condivisi forniscono una connessione visiva fluida tra gli elementi composibili con contenuti condivisi, spesso utilizzati per la navigazione.
Per utilizzare gli elementi condivisi con la funzionalità di composizione di navigazione, consulta Torna indietro con elementi condivisi.
Supporto del ritorno predittivo con i componenti Material Compose
Molti componenti della libreria Material Compose sono progettati per funzionare perfettamente con i gesti di ritorno predittivi. Per attivare le animazioni di ritorno predittive in questi componenti, includi la dipendenza Material3 più recente (androidx.compose.material3:material3-*:1.3.0
o successive) nel tuo progetto.
I componenti di Material che supportano le animazioni Indietro predittive includono:
SearchBar
ModalBottomSheet
ModalDrawerSheet/DismissibleDrawerSheet
ModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar
e ModalBottomSheet
si animano automaticamente con gesti di Indietro predittivi. ModalNavigationDrawer
,
ModalDrawerSheet
, DismissibleDrawerSheet
e
DismissibleNavigationDrawer
richiedono di passare drawerState
ai rispettivi composabili dei contenuti del foglio.
Testare l'animazione del gesto Indietro predittivo
Se utilizzi ancora Android 13 o Android 14, puoi testare l'animazione di ritorno alla schermata iniziale.
Per testare questa animazione, segui questi passaggi:
- Sul dispositivo, vai a Impostazioni > Sistema > Opzioni sviluppatore.
- Seleziona Animazioni Indietro predittive.
- Avvia l'app aggiornata e usa il gesto Indietro per vederla in azione.
Su Android 15 e versioni successive, questa funzionalità è attiva per impostazione predefinita.
Risorse aggiuntive
- Codelab per aggiungere animazioni Indietro predittive
- Animazioni di layout avanzate in Compose video