Configurare Indietro predittivo

Le animazioni di sistema e per il gesto Indietro predittivo sono attivate per impostazione predefinita. Se la tua app intercetta l'evento Indietro e non hai eseguito la migrazione al gesto Indietro predittivo, aggiornala per utilizzare le API di navigazione a ritroso supportate

L'animazione Indietro predittiva alla schermata Home.
L'animazione predittiva tra attività.
L'animazione predittiva tra attività.

Attivare le animazioni di sistema predefinite

Le animazioni di sistema Indietro alla schermata Home, tra attività e tra attività sono disponibili sui dispositivi con Android 15 e versioni successive per le app di cui è stata eseguita la migrazione alle API di gestione Indietro supportate.

  • Indietro alla schermata Home: riporta l'utente alla schermata Home.
  • Tra attività: transizioni tra le attività all'interno dell'app.
  • Tra attività: transizioni tra le attività.

Queste animazioni sono attivate per impostazione predefinita su Android 15 e versioni successive. Sui dispositivi con Android 13 o 14, gli utenti possono attivarle tramite le opzioni sviluppatore.

Per ottenere le animazioni di sistema, aggiorna la dipendenza Activity di AndroidX alla versione 1.6.0 o successive.

Attivare il gesto Indietro predittivo con Navigation Compose

Per utilizzare il gesto Indietro predittivo in Navigation Compose, assicurati di utilizzare la navigation-compose 2.8.0 libreria o versioni successive.

Navigation Compose esegue automaticamente la dissolvenza incrociata tra le schermate quando l'utente scorre verso Indietro:

Figura 2. L'animazione di dissolvenza incrociata predefinita nell'app in SociaLite.

Durante la navigazione, puoi creare transizioni personalizzate con popEnterTransition e popExitTransition. Quando vengono applicati al tuo NavHost, questi modificatori ti consentono di definire l'animazione delle schermate di entrata e uscita. Puoi utilizzarli per creare una varietà di effetti, come scalabilità, dissolvenza o scorrimento.

In questo esempio, scaleOut viene utilizzato all'interno di popExitTransition per fare lo scale down della schermata di uscita quando l'utente torna indietro. Inoltre, il parametro transformOrigin determina il punto attorno al quale si verifica l'animazione di scalabilità. Per impostazione predefinita, è il centro dello schermo (0.5f, 0.5f). Puoi modificare questo valore per fare in modo che la scalabilità 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:

Figura 3. Un'animazione personalizzata nell'app SociaLite.

popEnterTransition e popExitTransition controllano in modo specifico le animazioni quando si estrae il back stack, ad esempio con un gesto Indietro. Puoi anche utilizzare enterTransition e exitTransition per definire le animazioni per l'inserimento e l'uscita dei composable in generale, non solo per il gesto Indietro predittivo. Se imposti solo enterTransition e exitTransition, questi vengono utilizzati sia per la navigazione normale sia per l'estrazione del back stack. Tuttavia, l'utilizzo di popEnterTransition e popExitTransition ti consente di creare animazioni distinte per la navigazione a ritroso.

Eseguire l'integrazione con le transizioni degli elementi condivisi

Le transizioni degli elementi condivisi forniscono una connessione visiva fluida tra i composable con contenuti condivisi, spesso utilizzati per la navigazione.

Figura 4. Transizione degli elementi condivisi con il gesto Indietro predittivo in Navigation Compose.

Per utilizzare gli elementi condivisi con Navigation Compose, consulta Gesto Indietro predittivo con elementi condivisi.

Supportare il gesto Indietro predittivo con i componenti Material Compose

Molti componenti della libreria Material Compose sono progettati per funzionare senza problemi con i gesti Indietro predittivi. Per attivare le animazioni del gesto Indietro predittivo in questi componenti, includi la dipendenza Material3 più recente (androidx.compose.material3:material3-*:1.3.0 o versioni successive) nel tuo progetto.

I componenti Material che supportano le animazioni del gesto Indietro predittivo includono:

SearchBar e ModalBottomSheet vengono animate automaticamente con i gesti Indietro predittivi. ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet e DismissibleNavigationDrawer richiedono di passare drawerState ai rispettivi composable dei contenuti del foglio.

Testare l'animazione del gesto Indietro predittivo

Se utilizzi ancora Android 13 o Android 14, puoi testare l'animazione Indietro alla schermata Home.

Per testare questa animazione:

  1. Sul dispositivo, vai a Impostazioni > Sistema > Opzioni sviluppatore.
  2. Seleziona Animazioni del gesto Indietro predittivo.
  3. Avvia l'app aggiornata e utilizza il gesto Indietro per vederla in azione.

Su Android 15 e versioni successive, questa funzionalità è attivata per impostazione predefinita.

Risorse aggiuntive