El elemento componible PredictiveBackHandler
en Jetpack Compose te permite interceptar el gesto atrás y acceder a su progreso. Puedes reaccionar al gesto atrás del usuario en tiempo real y crear animaciones o comportamientos personalizados en función de la distancia que el usuario desliza.
Para usar PredictiveBackHandler
, asegúrate de usar androidx.activity:activity:1.6.0
o una versión posterior.
PredictiveBackHandler
proporciona un Flow<BackEventCompat>
que emite eventos que representan el progreso del gesto atrás. Cada evento contiene información como la siguiente:
progress
: Un valor de punto flotante entre 0 y 1 que indica el progreso del gesto atrás (0 = se inició el gesto, 1 = se completó el gesto).touchX
ytouchY
: Son las coordenadas X e Y del evento táctil.
En el siguiente fragmento, se muestra el uso básico de 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 } }
Ejemplo: Cómo realizar la integración con un panel lateral de navegación
En este ejemplo, se muestra cómo implementar una animación personalizada en la app con PredictiveBackHandler
para crear una interacción fluida con un panel de navegación en respuesta a gestos atrás en JetLagged:
En este ejemplo, PredictiveBackHandler
se usa para lo siguiente:
- Realiza un seguimiento del progreso del gesto atrás.
- Actualiza el
translationX
del panel lateral según el progreso del gesto. - Usa un
velocityTracker
para abrir o cerrar el panel lateral sin problemas según la velocidad del gesto cuando se complete o cancele.