Navigation

Essayer Compose
Jetpack Compose sur Wear OS est le kit d'UI recommandé pour Wear OS.

Après avoir conçu des écrans individuels pour chaque parcours utilisateur, vous pouvez avoir quelques écrans verticaux ou uniques. Ensuite, vous devez décider comment concevoir ces écrans pour qu'ils fonctionnent ensemble et comment implémenter la navigation.

Conception

La hiérarchie de votre application doit être peu profonde et linéaire, comme indiqué dans les consignes de conception d'applications.

Pour commencer, le lanceur d'applications de votre application doit ouvrir le parcours utilisateur le plus courant. Concevez chaque parcours utilisateur en plaçant le contenu le plus important en haut. Pour les conteneurs verticaux, utilisez la partie inférieure pour créer des liens vers d'autres parcours utilisateur moins courants et vers les paramètres.

Figure 1 : Placez le contenu le plus important en haut des conteneurs verticaux.

Lorsque les utilisateurs accèdent à l'un de vos écrans, assurez-vous qu'ils peuvent utiliser le geste de balayage pour fermer pour descendre dans la pile "Retour".

Implémenter la navigation

Lorsque vous implémentez votre navigation, trois options s'offrent à vous, comme décrit dans les sections suivantes:

  • Activités uniquement (approche recommandée)
  • Activités et fragments
  • Navigation dans Jetpack

Activités uniquement

Étant donné que les écrans verticaux ont généralement un seul niveau, vous pouvez implémenter tous vos écrans à l'aide d'activités et sans utiliser de fragments.

Nous vous recommandons vivement de suivre cette approche. Il simplifie votre code, et les activités prennent automatiquement en charge le geste Balayer pour fermer. Cela facilite également l'implémentation du mode Veille.

Remarque:Faites en sorte que vos activités héritent d'un élément ComponentActivity si vous n'utilisez pas de fragments. Les autres types d'activité utilisent des éléments d'interface utilisateur spécifiques aux mobiles dont vous n'avez pas besoin pour Wear OS.

Activités et fragments

Vous pouvez utiliser des fragments avec des activités dans votre application Wear OS. Toutefois, nous vous déconseillons de le faire, car il n'y a pas d'avantage clair à utiliser des fragments pour créer une architecture peu profonde et plate.

Remarque:Si vous utilisez des fragments, faites-les hériter de FragmentActivity. Les autres types d'activité utilisent des éléments d'interface utilisateur spécifiques aux mobiles dont vous n'avez pas besoin pour Wear OS.

Voici quelques difficultés liées à l'utilisation de fragments dans votre application Wear OS:

  • Vous devez implémenter le balayage pour ignorer vous-même. Sinon, lorsque l'utilisateur effectue un balayage, il quitte l'application entière.
  • Si vous utilisez AmbientMode, vous devez le personnaliser pour qu'il fonctionne correctement. AmbientMode est défini sur l'activité. Vous devez donc en tenir compte lors de l'implémentation des fragments.

Pour prendre en charge le geste Balayer pour fermer avec des fragments, vous devez encapsuler la vue contenant le fragment dans la classe SwipeDismissFrameLayout. Pour en savoir plus, consultez la section Balayer pour ignorer. Cela permet aux utilisateurs de bénéficier d'une expérience cohérente avec votre application.

Remarque:Lorsque vous utilisez des fragments, utilisez FragmentManager.add plutôt que FragmentManager.replace pour prendre en charge le geste Balayer pour fermer. Cela permet de garantir que votre fragment précédent est affiché sous le segment supérieur lorsqu'il est balayé.

Navigation dans Jetpack

Jetpack Navigation peut fonctionner sur Wear OS, mais présente les mêmes inconvénients que les fragments. Cela ajoute du travail de développement et, comme la hiérarchie d'une application Wear OS est généralement peu profonde et linéaire, cela n'offre pas beaucoup d'avantages. Une approche "activité uniquement" est préférable.

Pour exploiter pleinement Jetpack Navigation, procédez comme suit:

  • Assurez-vous que chaque fragment utilise un SwipeDismissFrameLayout comme racine et utilisez manuellement l'action de rejet pour revenir en arrière dans le graphique de navigation.
  • Implémentez un FragmentNavigator personnalisé qui affiche des fragments les uns sur les autres.