O elemento combinável PredictiveBackHandler
no Jetpack Compose permite
interceptar o gesto de voltar e acessar o progresso dele. É possível reagir ao gesto de
voltar do usuário em tempo real, criando animações ou comportamentos personalizados com base na
distância da gestuação do usuário.
Para usar o PredictiveBackHandler
, verifique se você está usando
androidx.activity:activity:1.6.0
ou mais recente.
PredictiveBackHandler
fornece um Flow<BackEventCompat>
que emite eventos
representando o progresso do gesto de volta. Cada evento contém informações
como:
progress
: um valor flutuante entre 0 e 1 que indica o progresso do gesto de volta (0 = gesto iniciado, 1 = gesto concluído).touchX
etouchY
: as coordenadas X e Y do evento de toque.
O snippet a seguir mostra o 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 } }
Exemplo: integrar com uma gaveta de navegação
Este exemplo demonstra como implementar uma animação personalizada no app usando PredictiveBackHandler
para criar uma interação suave com uma gaveta de navegação
em resposta a gestos de volta no JetLagged:
Neste exemplo, PredictiveBackHandler
é usado para:
- Acompanhe o progresso do gesto de volta.
- Atualize o
translationX
da gaveta com base no progresso do gesto. - Use um
velocityTracker
para abrir ou fechar a gaveta com base na velocidade do gesto quando ele for concluído ou cancelado.