Assurer la compatibilité avec la navigation par gestes

À partir d'Android 10 (niveau d'API 29), le système Android est entièrement compatible par gestes. Les développeurs d'applications doivent s'assurer leurs applications sont compatibles avec cette fonctionnalité:

  • Étendez le contenu de l'application d'un bord à l'autre.
  • Gérez les conflits entre les gestes d'application.

De plus, Android 13 (niveau d'API 33) introduit une prévisualisation du geste Retour pour Android tels que les téléphones, les grands écrans et les pliables, qui font partie d'un de sortie. Les développeurs d'applications peuvent prendre des mesures pour s'assurer que leurs applications sont compatibles avec pour la prévisualisation du geste Retour.

Fournir un contenu d'application de bord à bord

Pour tirer parti de l'espace supplémentaire disponible sur l'écran grâce au Flash transparent barre de navigation, vous devez configurer certaines modifications dans votre application.

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

Gérer les gestes d'application en conflit

Le modèle de navigation par gestes peut entrer en conflit avec les gestes qui étaient auparavant utilisés par les développeurs d'applications. Vous devrez peut-être apporter des modifications aux utilisateurs de votre application .

Conflits avec les gestes Retour

Le nouveau geste système pour revenir en arrière consiste à balayer l'écran vers l'intérieur, à partir de la gauche sur le bord droit de l'écran. Cela peut interférer avec les éléments de navigation de l'application dans ces domaines. Pour conserver le bon fonctionnement des éléments sur les bords gauche et droit de l'écran, désactivez le geste Retour de façon sélective en indiquant les régions devant recevoir la saisie tactile. Pour ce faire, vous devez transmettre List<Rect> sur View.setSystemGestureExclusionRects() API introduite dans Android 10. Cette méthode est également disponible dans ViewCompat à compter du 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 la maison ou le passage rapide

Les nouveaux gestes système pour l'accueil et le passage rapide impliquent tous deux de balayer l'écran au niveau en bas de l'écran dans l'espace précédemment occupé par la barre de navigation. Applications ne peuvent pas désactiver ces gestes comme ils le font avec le geste Retour.

Pour atténuer ce problème, Android 10 introduit la WindowInsets.getMandatorySystemGestureInsets() qui informe les applications des seuils de reconnaissance tactile.

Jeux et autres applis sans vue

Les jeux et autres applications sans hiérarchie des vues nécessitent souvent que l'utilisateur balayez l'écran à proximité des zones de gestes système. Dans ce cas, les jeux peuvent utiliser Window.setSystemGestureExclusionRects() pour exclure les zones qui chevauchent les zones réservées aux gestes système. Jeux veillez à n'exclure ces zones que lorsque cela est nécessaire (par exemple, le gameplay.

Si un jeu nécessite que l'utilisateur balaie l'écran près de la zone du geste d'accueil, l'application peut que la demande soit mise en page en mode immersif. Cette action désactive les gestes système pendant que l'utilisateur interagit avec le jeu, mais lui permet de le réactiver les gestes système en balayant depuis le bas de l'écran.

Mettez à 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 Retour fait partie d'une sortie pluriannuelle. Lorsqu'elle est entièrement implémentée, cette fonctionnalité permet aux utilisateurs de prévisualiser la destination ou le résultat d'un geste Retour avant qu’ils le terminent complètement, ce qui leur permet de décider s’il faut poursuivre ou rester dans la vue actuelle.

Voir Ajouter la prise en charge de la prévisualisation du geste Retour pour en savoir plus.

Ressources supplémentaires

Pour en savoir plus sur la navigation par gestes, consultez les articles suivants:

Articles de blog

Vidéos