Navegación

Después de diseñar pantallas individuales para cada recorrido del usuario, es posible que tengas algunas pocas pantallas únicas o verticales. A continuación, debes decidir cómo diseñar esas pantallas para que funcionen en conjunto y cómo implementar la navegación.

Diseño

Mantén la jerarquía de la app superficial y lineal, como se indica en los lineamientos del diseño de apps.

Para empezar, el selector de tu app debería abrir el recorrido más común del usuario. Diseña cada recorrido con el contenido más importante ubicado en la parte superior. Para contenedores verticales, usa la parte inferior para incluir vínculos a la configuración y a otros recorridos del usuario menos comunes.

Figura 1: Mantén el contenido más importante en la parte superior de los contenedores verticales.

Cuando los usuarios ingresen a una de tus pantallas, asegúrate de que puedan usar el gesto de deslizar para descartar para navegar por la pila de actividades.

Cómo implementar la navegación

Cuando implementes la navegación, tienes tres opciones, que se describen en las secciones siguientes:

  • Solo actividades (el enfoque recomendado)
  • Actividades y fragmentos
  • Jetpack Navigation

Solo actividades

Dado que las pantallas verticales en general tienen un nivel de profundidad, puedes implementar todas las pantallas usando actividades y sin usar fragmentos.

Te recomendamos que sigas este enfoque. Simplificará tu código, y las actividades admitirán automáticamente el gesto de deslizar para descartar. También simplificará la implementación del modo ambiente.

Nota: Haz que tus actividades hereden contenido de una ComponentActivity si no estás usando fragmentos. Los otros tipos de actividad usan elementos de IU específicos para dispositivos móviles que no necesitas para Wear OS.

Actividades y fragmentos

Puedes usar fragmentos con actividades en tu app para Wear OS. Sin embargo, no recomendamos que uses este enfoque, ya que no hay una clara ventaja sobre el uso de fragmentos para crear una arquitectura superficial y plana.

Nota: Si usas fragmentos, haz que hereden contenido de FragmentActivity. Los otros tipos de actividad usan elementos de IU específicos para dispositivos móviles que no necesitas para Wear OS.

Algunas dificultades del uso de fragmentos en tu app para Wear OS son las siguientes:

  • Debes implementar por tu cuenta el gesto deslizar para descartar. De lo contrario, cuando el usuario haga el gesto de deslizar, saldrá de la app.
  • Si usas AmbientMode, debes personalizarlos para que funcione correctamente. AmbientMode se configura en la actividad, por lo que debes tener eso en cuenta a la hora de implementar fragmentos.

Para admitir el gesto de deslizar para descartar con fragmentos, debes unir la vista que contiene el fragmento con la clase SwipeDismissFrameLayout. Si deseas obtener más información, consulta El gesto de deslizar para descartar. Hacer esto, le brinda a los usuarios una experiencia coherente con tu app.

Nota: Cuando uses fragmentos, usa FragmentManager.add en lugar de FragmentManager.replace para admitir el gesto de deslizar para descartar. De esta manera, te aseguras de que tu fragmento se renderiza en los fragmentos superiores mientras se desliza.

Jetpack Navigation

Jetpack Navigation puede funcionar en Wear OS, pero presenta los mismos inconvenientes que los fragmentos. Requiere trabajo de desarrollo adicional y, dado que la jerarquía de una app para Wear OS es generalmente superficial y lineal, no ofrece demasiadas ventajas. El mejor enfoque es el de solo actividades.

Para aprovechar Jetpack Navigation por completo, haz lo siguiente:

  • Asegúrate de que todos los fragmentos usen un SwipeDismissFrameLayout como raíz y usa manualmente la acción de descartar para volver atrás en el gráfico de la navegación.
  • Implementa un FragmentNavigator personalizado que renderice fragmentos uno sobre el otro.