Kompozycja PredictiveBackHandler
w Jetpack Compose umożliwia przechwytywanie gestu wstecz i dostęp do jego postępu. Możesz reagować na gest cofania użytkownika w czasie rzeczywistym, tworząc niestandardowe animacje lub zachowania w zależności od tego, jak daleko przesunie palcem użytkownik.
Aby korzystać z PredictiveBackHandler
, musisz mieć wersję androidx.activity:activity:1.6.0
lub nowszą.
PredictiveBackHandler
udostępnia Flow<BackEventCompat>
, który emituje zdarzenia
reprezentujące postęp gestu wstecz. Każde zdarzenie zawiera informacje takie jak:
progress
: wartość zmiennoprzecinkowa z zakresu od 0 do 1 wskazująca postęp gestu powrotu (0 = rozpoczęcie gestu, 1 = zakończenie gestu).touchX
itouchY
: współrzędne X i Y zdarzenia dotyku.
Poniższy fragment kodu pokazuje podstawowe użycie tagu 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 } }
Przykład: integracja z panelem nawigacji
Ten przykład pokazuje, jak w JetLagged wdrożyć niestandardową animację w aplikacji za pomocą PredictiveBackHandler
, aby zapewnić płynną interakcję z panelem nawigacyjnym w odpowiedzi na gesty cofania:
W tym przykładzie znak PredictiveBackHandler
służy do:
- Śledź postęp gestu cofania.
- Zaktualizuj
translationX
szuflady na podstawie postępu gestu. - Użyj
velocityTracker
, aby płynnie otworzyć lub zamknąć szufladę na podstawie szybkości gestu po jego zakończeniu lub anulowaniu.