Fortschritt manuell abrufen

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 und touchY: 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:

Abbildung 5 Navigationsleiste mit Unterstützung für die Funktion „Vorhersagen für Zurück“

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.