El elemento componible PredictiveBackHandler de Jetpack Compose te permite interceptar el gesto de atrás y acceder a su progreso. Puedes reaccionar al gesto de atrás del usuario en tiempo real, lo que crea animaciones o comportamientos personalizados según la distancia que deslice el usuario.
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: Es un valor de número de punto flotante entre 0 y 1 que indica el progreso del gesto de atrás (0 = gesto iniciado, 1 = gesto completado).touchXytouchY: 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 throw e } }
Ejemplo: Integra con un panel lateral de navegación
En este ejemplo, se muestra cómo implementar una animación personalizada integrada en la app con PredictiveBackHandler para crear una interacción fluida con un panel lateral de navegación en respuesta a los gestos atrás en JetLagged:
En este ejemplo, se usa PredictiveBackHandler para lo siguiente:
- Realiza un seguimiento del progreso del gesto atrás.
- Actualiza el
translationXdel panel lateral según el progreso del gesto. - Usa un
velocityTrackerpara abrir o cerrar el panel lateral de forma fluida según la velocidad del gesto cuando se complete o cancele.