Assurer la compatibilité avec la navigation par gestes

À partir d'Android 10 (niveau d'API 29), le système Android prend en charge la navigation entièrement basée sur les gestes. Les développeurs d'applications doivent effectuer deux opérations pour s'assurer que leurs applications sont compatibles avec cette fonctionnalité:

  • Étendez le contenu des applications d'un bord à l'autre.
  • Gérer les gestes en conflit dans les applications

En outre, Android 13 (niveau d'API 33) introduit une prévisualisation du geste Retour pour les appareils Android, tels que les téléphones, les grands écrans et les pliables, dans le cadre d'une version pluriannuelle. Les développeurs d'applications peuvent prendre des mesures pour s'assurer que leurs applications sont compatibles avec la prévisualisation du geste Retour.

Fournir du contenu d'application bord à bord

Pour profiter de l'espace supplémentaire à l'écran mis à disposition par la barre de navigation flottante, vous devez configurer certaines modifications dans votre application.

Pour en savoir plus, consultez la section Afficher le contenu bord à bord dans votre application.

Gérer les gestes en conflit dans une application

Le modèle de navigation par gestes peut entrer en conflit avec des gestes qui étaient auparavant utilisés par les développeurs d'applications. Par conséquent, vous devrez peut-être modifier l'interface utilisateur de votre application.

Conflits avec les gestes Retour

Le nouveau geste système pour l'arrière est un balayage vers l'intérieur à partir du bord gauche ou droit de l'écran. Cela peut interférer avec les éléments de navigation de l'application dans ces zones. Pour maintenir la fonctionnalité des éléments situés sur les bords gauche et droit de l'écran, désactivez le geste Retour de manière sélective en indiquant au système quelles régions doivent recevoir la saisie tactile. Pour ce faire, transmettez un List<Rect> à l'API View.setSystemGestureExclusionRects() introduite dans Android 10. Cette méthode est également disponible dans ViewCompat à partir du androidx.core:core:1.1.0-dev01.

Par 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 d'accueil ou de Quick Switch

Les nouveaux gestes système pour l'écran d'accueil et le basculement rapide impliquent tous deux de balayer l'écran 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 ils le peuvent avec 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 ne disposant pas de vues

Les jeux et autres applications sans hiérarchie d'affichage nécessitent souvent que l'utilisateur balaie l'écran près des zones de gestes système. Dans ce cas, les jeux peuvent utiliser Window.setSystemGestureExclusionRects() pour exclure les zones qui se chevauchent avec 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 nécessite que l'utilisateur balaie l'écran près de la zone du geste d'accueil, l'application peut demander à être disposée en mode immersif. Cela désactive les gestes système lorsque 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 qu'elle prenne 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. La prévisualisation du geste Retour fait partie d'une version pluriannuelle. Lorsqu'elle est entièrement 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'effectuer complètement. Ils peuvent ainsi décider de continuer ou de rester dans la vue actuelle.

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 articles suivants:

Articles de blog

Vidéos