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).touchX
etouchY
: 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
translationX
del riquadro in base all'avanzamento del gesto. - Utilizza un
velocityTracker
per aprire o chiudere il riquadro in modo fluido in base alla velocità del gesto quando viene completato o annullato.