À partir d'Android 10 (niveau d'API 29), le système Android est compatible avec la navigation entièrement basée sur les gestes. Les développeurs d'applications doivent effectuer deux actions pour s'assurer que leurs applications sont compatibles avec cette fonctionnalité :
- Étendez le contenu de l'application d'un bord à l'autre.
- Gérez les gestes d'application conflictuels.
De plus, Android 13 (niveau d'API 33) introduit la prévisualisation du geste Retour pour les appareils Android tels que les téléphones, les grands écrans et les pliables, qui fait partie d'une version pluriannuelle. Les développeurs d'applications peuvent prendre des mesures pour s'assurer que leurs applications prennent en charge la prévisualisation du geste Retour.
Fournir du contenu d'application bord à bord
Pour profiter de l'espace d'écran supplémentaire rendu disponible par la barre de navigation flottante, vous devez configurer certaines modifications dans votre application.
Pour en savoir plus, consultez Afficher le contenu bord à bord dans votre application.
Gérer les gestes d'application conflictuels
Le modèle de navigation par gestes peut entrer en conflit avec les gestes précédemment utilisés par les développeurs d'applications. Vous devrez peut-être ajuster l'interface utilisateur de votre application en conséquence.
Conflits avec les gestes Retour
Le nouveau geste système pour revenir en arrière consiste à balayer l'écran vers l'intérieur depuis le bord gauche ou droit. Cela peut interférer avec les éléments de navigation de l'application dans ces zones. Pour que les éléments situés sur les bords gauche et droit de l'écran continuent de fonctionner, désactivez le geste Retour de manière sélective en indiquant au système les régions qui doivent recevoir des entrées tactiles. Pour ce faire, transmettez un List<Rect>
à l'API View.setSystemGestureExclusionRects()
introduite dans Android 10. Cette méthode est également disponible dans ViewCompat
à partir de androidx.core:core:1.1.0-dev01
.
Exemple :
Kotlin
var exclusionRects = listOf(rect1, rect2, rect3) fun onLayout( changedCanvas: Boolean, left: Int, top: Int, right: Int, bottom: Int) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) } fun onDraw(canvas: Canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects) }
Java
List<Rect> exclusionRects; public void onLayout( boolean changedCanvas, int left, int top, int right, int bottom) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); } public void onDraw(Canvas canvas) { // Update rect bounds and the exclusionRects list setSystemGestureExclusionRects(exclusionRects); }
Conflits avec les gestes pour revenir à l'écran d'accueil ou pour passer d'une application à l'autre
Les nouveaux gestes système pour l'écran d'accueil et le changement rapide d'application impliquent tous deux des balayages en bas de l'écran, dans l'espace précédemment occupé par la barre de navigation. Les applications ne peuvent pas désactiver ces gestes comme elles le font pour le geste Retour.
Pour atténuer ce problème, Android 10 introduit l'API WindowInsets.getMandatorySystemGestureInsets()
, qui informe les applications des seuils de reconnaissance tactile.
Jeux et autres applications non View
Les jeux et autres applications qui n'ont pas de hiérarchie de vues demandent souvent à l'utilisateur de balayer l'écran près des zones de gestes système. Dans ce cas, les jeux peuvent utiliser Window.setSystemGestureExclusionRects()
pour exclure les zones qui chevauchent celles réservées aux gestes système. Les jeux ne doivent exclure ces zones que lorsque cela est nécessaire, par exemple pendant le jeu.
Si un jeu exige que l'utilisateur balaye l'écran près de la zone du geste Accueil, l'application peut demander à être affichée en mode immersif. Cela désactive les gestes système pendant que l'utilisateur interagit avec le jeu, mais lui permet de les réactiver en balayant l'écran de bas en haut.
Mettre à jour votre application pour prendre en charge la prévisualisation du geste Retour
Android 13 (niveau d'API 33) introduit la prévisualisation du geste Retour pour les appareils Android tels que les téléphones, les grands écrans et les pliables. Le geste de retour prédictif fait partie d'une version pluriannuelle. Lorsqu'elle est complètement implémentée, cette fonctionnalité permet aux utilisateurs de prévisualiser la destination ou un autre résultat d'un geste Retour avant de l'exécuter complètement. Ils peuvent ainsi décider de continuer ou de rester dans l'affichage actuel.
Pour en savoir plus, consultez Ajouter la prise en charge de la prévisualisation du geste Retour.
Ressources supplémentaires
Pour en savoir plus sur la navigation par gestes, consultez les ressources suivantes :
Articles de blog
- Gesture Navigation: handling visual overlaps (II) (Navigation par gestes : gérer le chevauchement visuel (II))