Il composable PredictiveBackHandler in Jetpack Compose ti consente di
intercettare il gesto Indietro e accedere ai suoi progressi. Puoi reagire al gesto
di scorrimento indietro dell'utente in tempo reale, creando animazioni o comportamenti personalizzati in base alla distanza
dello scorrimento.
Per utilizzare PredictiveBackHandler, assicurati di utilizzare
androidx.activity:activity:1.6.0 o versioni successive.
PredictiveBackHandler fornisce un Flow<BackEventCompat> che genera eventi
che rappresentano l'avanzamento del gesto Indietro. Ogni evento contiene informazioni
come:
progress: un valore float compreso tra 0 e 1 che indica l'avanzamento del gesto Indietro (0 = gesto iniziato, 1 = gesto completato).touchXetouchY: le coordinate X e Y dell'evento tocco.
Il seguente snippet mostra l'utilizzo di base di PredictiveBackHandler:
PredictiveBackHandler(true) { progress: Flow<BackEventCompat> -> // code for gesture back started try { progress.collect { backEvent -> // code for progress boxScale = 1F - (1F * backEvent.progress) } // code for completion boxScale = 0F } catch (e: CancellationException) { // code for cancellation boxScale = 1F throw e } }
Esempio: integrare con un riquadro di navigazione a scomparsa
Questo esempio mostra come implementare un'animazione in-app personalizzata utilizzando PredictiveBackHandler per creare un'interazione fluida con un riquadro di navigazione
in risposta ai gesti indietro in JetLagged:
In questo esempio, PredictiveBackHandler viene utilizzato per:
- Monitora l'avanzamento del gesto Indietro.
- Aggiorna il
translationXdel riquadro in base all'avanzamento del gesto. - Utilizza un
velocityTrackerper aprire o chiudere il riquadro in modo fluido in base alla velocità del gesto quando viene completato o annullato.