Die PredictiveBackHandler zusammensetzbare Funktion in Jetpack Compose lässt Sie
die Zurück-Geste abfangen und auf ihren Fortschritt zugreifen. Sie können in Echtzeit auf die Zurück-Geste des Nutzers reagieren und benutzerdefinierte Animationen oder Verhaltensweisen erstellen, je nachdem, wie weit der Nutzer wischt.
Wenn Sie PredictiveBackHandler verwenden möchten, müssen Sie androidx.activity:activity:1.6.0 oder höher verwenden.
PredictiveBackHandler bietet einen Flow<BackEventCompat>, der Ereignisse ausgibt
, die den Fortschritt der Zurück-Geste darstellen. Jedes Ereignis enthält Informationen wie:
progress: Ein Gleitkommawert zwischen 0 und 1, der den Fortschritt der Zurück-Geste angibt (0 = Geste gestartet, 1 = Geste abgeschlossen).touchXundtouchY: Die X- und Y‑Koordinaten des Touch-Ereignisses.
Das folgende Snippet zeigt die grundlegende Verwendung von 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 } }
Beispiel: In eine Navigationsleiste einbinden
In diesem Beispiel wird gezeigt, wie Sie mit
PredictiveBackHandler eine benutzerdefinierte In-App-Animation implementieren, um eine reibungslose Interaktion mit einer Navigations
leiste zu erstellen, wenn in JetLagged Zurück-Gesten ausgeführt werden:
In diesem Beispiel wird PredictiveBackHandler verwendet, um:
- den Fortschritt der Zurück-Geste zu verfolgen.
- die
translationXder Navigationsleiste basierend auf dem Fortschritt der Geste zu aktualisieren. - einen
velocityTrackerzu verwenden, um die Leiste basierend auf der Geschwindigkeit der Touchgeste reibungslos zu öffnen oder zu schließen, wenn die Touchgeste abgeschlossen oder abgebrochen wird.