Il composable PredictiveBackHandler
in Jetpack Compose ti consente di intercettare il gesto Indietro e accedere al relativo avanzamento. 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 emette eventi
rappresentanti 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 di riavvolgimento (0 = gesto avviato, 1 = gesto completato).touchX
etouchY
: le coordinate X e Y dell'evento tocco.
Lo snippet seguente 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 } }
Esempio: integrazione 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 di ritorno 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. - Usa un
velocityTracker
per aprire o chiudere dolcemente il riquadro in base alla velocità del gesto quando il gesto viene completato o annullato.