Mit dem PredictiveBackHandler
-Composeable in Jetpack Compose können 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, die davon abhängen, wie weit der Nutzer wischt.
Wenn Sie die PredictiveBackHandler
verwenden möchten, müssen Sie androidx.activity:activity:1.6.0
oder höher verwenden.
PredictiveBackHandler
stellt einen Flow<BackEventCompat>
bereit, der Ereignisse auslöst, die den Fortschritt der Touch-Geste „Zurück“ 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).touchX
undtouchY
: 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 } }
Beispiel: Einbindung in eine Navigationsleiste
In diesem Beispiel wird gezeigt, wie Sie mit PredictiveBackHandler
eine benutzerdefinierte In-App-Animation implementieren, um in JetLagged eine reibungslose Interaktion mit einem Navigationsmenü als Reaktion auf Zurück-Gesten zu ermöglichen:
In diesem Beispiel wird PredictiveBackHandler
für Folgendes verwendet:
- Verfolgen Sie den Fortschritt der Touch-Geste „Zurück“.
- Aktualisieren Sie die
translationX
der Leiste entsprechend dem Fortschritt der Geste. - Mit
velocityTracker
können Sie die Schublade je nach Geschwindigkeit der Touch-Geste, wenn sie abgeschlossen oder abgebrochen wird, reibungslos öffnen oder schließen.