Configurare Indietro predittivo

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:

Figura 2. L'animazione in-app con transizione graduale predefinita in SociaLite.

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:

Figura 3. Un'animazione in-app personalizzata in SociaLite.

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.

Figura 4. Transizione di elementi condivisi con il pulsante Indietro predittivo in Navigation Compose.

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 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:

  1. Sul dispositivo, vai a Impostazioni > Sistema > Opzioni sviluppatore.
  2. Seleziona Animazioni Indietro predittive.
  3. 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