Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Mit der PredictiveBackHandler-Composable 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 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).
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 startedtry{progress.collect{backEvent->
// code for progressboxScale=1F-(1F*backEvent.progress)}// code for completionboxScale=0F}catch(e:CancellationException){// code for cancellationboxScale=1Fthrowe}}
In diesem Beispiel wird gezeigt, wie Sie mit PredictiveBackHandler eine benutzerdefinierte In-App-Animation implementieren, um eine reibungslose Interaktion mit einem Navigationsmenü als Reaktion auf Zurück-Gesten in JetLagged zu ermöglichen:
Abbildung 5. Navigationsleiste mit Unterstützung für die Vorschau der intelligenten „Zurück“-Geste.
In diesem Beispiel wird PredictiveBackHandler für Folgendes verwendet:
Verfolgen Sie den Fortschritt der „Zurück“-Geste.
Aktualisieren Sie die translationX der Schublade basierend auf dem Fortschritt der Geste.
Verwenden Sie eine velocityTracker, um die Schublade basierend auf der Geschwindigkeit der Geste beim Beenden oder Abbrechen der Geste sanft zu öffnen oder zu schließen.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-08-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-27 (UTC)."],[],[],null,["The [`PredictiveBackHandler`](https://developer.android.com/reference/kotlin/androidx/activity/compose/PredictiveBackHandler) composable in Jetpack Compose lets you\nintercept the back gesture and access its progress. You can react to the user's\nback gesture in real-time, creating custom animations or behaviors based on how\nfar the user swipes.\n\nTo use the `PredictiveBackHandler`, ensure you are using\n`androidx.activity:activity:1.6.0` or higher.\n\n`PredictiveBackHandler` provides a `Flow\u003cBackEventCompat\u003e` that emits events\nrepresenting the progress of the back gesture. Each event contains information\nsuch as:\n\n- `progress`: A float value between 0 and 1 indicating the progress of the back gesture (0 = gesture started, 1 = gesture completed).\n- `touchX` and `touchY`: The X and Y coordinates of the touch event.\n\nThe following snippet shows basic usage of `PredictiveBackHandler`:\n\n\n```kotlin\nPredictiveBackHandler(true) { progress: Flow\u003cBackEventCompat\u003e -\u003e\n // code for gesture back started\n try {\n progress.collect { backEvent -\u003e\n // code for progress\n boxScale = 1F - (1F * backEvent.progress)\n }\n // code for completion\n boxScale = 0F\n } catch (e: CancellationException) {\n // code for cancellation\n boxScale = 1F\n throw e\n }\n}https://github.com/android/snippets/blob/f95ab59fad80aeaf5d6a90bab8a01a126f20f44e/compose/snippets/src/main/java/com/example/compose/snippets/predictiveback/PredictiveBackSnippets.kt#L122-L136\n```\n\n\u003cbr /\u003e\n\nExample: Integrate with a navigation drawer\n\nThis example demonstrates how to implement a custom in-app animation using `PredictiveBackHandler` to create a smooth interaction with a navigation\ndrawer in response to back gestures in [JetLagged](https://github.com/android/compose-samples/blob/main/JetLagged/app/src/main/java/com/example/jetlagged/JetLaggedDrawer.kt):\n**Figure 5.** Navigation drawer with predictive back support.\n\nIn this example, `PredictiveBackHandler` is used to:\n\n- Track the progress of the back gesture.\n- Update the `translationX` of the drawer based on the gesture progress.\n- Use a `velocityTracker` to smoothly open or close the drawer based on the gesture velocity when the gesture is completed or canceled."]]