Navigation

Essayer Compose
Jetpack Compose sur Wear OS est le kit d'outils 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. Vous devez ensuite décider comment concevoir ces écrans pour qu'ils fonctionnent ensemble et comment implémenter la navigation.

Conception

Veillez à ce que la hiérarchie de votre application soit peu profonde et linéaire, comme indiqué dans les consignes de conception d'applications.

Pour commencer, le lanceur d'applications 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 le bas 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 afin de descendre dans la pile "Retour".

Implémenter la navigation

Lorsque vous implémentez votre navigation, vous avez trois options, décrites 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 ne comportent généralement qu'un seul niveau, vous pouvez implémenter tous vos écrans à l'aide d'activités et sans utiliser de fragments.

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

Remarque : Faites en sorte que vos activités héritent d'un 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 le déconseillons, car il n'y a aucun avantage évident à 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 vous-même la fonctionnalité de balayage pour fermer. Sinon, lorsque l'utilisateur effectue un balayage, il quitte l'intégralité de l'application.
  • 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 Le geste "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, servez-vous de FragmentManager.add plutôt que de 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 il 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. Il est préférable d'adopter une approche axée uniquement sur les activités.

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 fermeture pour revenir en arrière dans le graphique de navigation.
  • Implémentez un FragmentNavigator personnalisé qui affiche les fragments les uns au-dessus des autres.