Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le composable PredictiveBackHandler dans Jetpack Compose vous permet d'intercepter le geste Retour et d'accéder à sa progression. Vous pouvez réagir au geste de retour de l'utilisateur en temps réel, en créant des animations ou des comportements personnalisés en fonction de la distance parcourue par l'utilisateur.
Pour utiliser PredictiveBackHandler, assurez-vous d'utiliser androidx.activity:activity:1.6.0 ou une version ultérieure.
PredictiveBackHandler fournit un Flow<BackEventCompat> qui émet des événements représentant la progression du geste Retour. Chaque événement contient des informations telles que :
progress : valeur float comprise entre 0 et 1 indiquant la progression du geste Retour (0 = geste commencé, 1 = geste terminé).
touchX et touchY : coordonnées X et Y de l'événement tactile.
L'extrait suivant montre l'utilisation de base de 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}}
Cet exemple montre comment implémenter une animation intégrée personnalisée à l'aide de PredictiveBackHandler pour créer une interaction fluide avec un tiroir de navigation en réponse aux gestes Retour dans JetLagged :
Figure 5 : Panneau de navigation avec prise en charge de la prévisualisation du Retour.
Dans cet exemple, PredictiveBackHandler est utilisé pour :
Suivez la progression du geste Retour.
Mettez à jour le translationX du tiroir en fonction de la progression du geste.
Utilisez un velocityTracker pour ouvrir ou fermer le tiroir en douceur en fonction de la vitesse du geste lorsque celui-ci est terminé ou annulé.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/27 (UTC)."],[],[],null,["# Access progress manually\n\nThe [`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/dd30aee903e8c247786c064faab1a9ca8d10b46e/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-------------------------------------------\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."]]