Navegação

Depois de projetar telas individuais para cada jornada do usuário, você pode ter algumas telas verticais ou únicas. Em seguida, você precisa decidir como projetar essas telas para que funcionem juntas e como implementar a navegação.

Design

Mantenha a hierarquia do app superficial e linear, conforme indicado nas diretrizes de design de apps.

Para começar, o iniciador do seu aplicativo deve abrir a jornada mais comum do usuário. Projete cada jornada do usuário com o conteúdo mais importante no topo. Em contêineres verticais, use a parte de baixo para vincular a outras jornadas do usuário menos comuns e às configurações.

Figura 1. Mantenha o conteúdo mais importante na parte de cima dos contêineres verticais.

Quando os usuários acessarem uma das suas telas, eles precisam conseguir usar o gesto de deslizar para dispensar a fim de navegar para a backstack.

Implementar a navegação

Ao implementar a navegação, você tem três opções, descritas nas seções a seguir:

  • Somente atividades, que é a abordagem recomendada
  • Atividades e fragmentos
  • Jetpack Navigation

Somente atividades

Como as telas verticais geralmente têm um nível de profundidade, você pode implementar todas as telas usando atividades e sem fragmentos.

Recomendamos essa abordagem. Ele simplifica o código, e as atividades oferecem suporte automático ao recurso deslizar para dispensar. Isso também simplifica a implementação do modo ambiente.

Observação:faça com que suas atividades herdem uma ComponentActivity se você não estiver usando fragmentos. Os outros tipos de atividade usam elementos de interface específicos para dispositivos móveis, que não são necessários para o Wear OS.

Atividades e fragmentos

Você pode usar fragmentos com atividades no seu app para Wear OS. No entanto, isso não é recomendado, porque não há uma vantagem clara do uso de fragmentos para criar uma arquitetura superficial e plana.

Observação:se você estiver usando fragmentos, faça com que eles herdem de FragmentActivity. Os outros tipos de atividade usam elementos de interface específicos para dispositivos móveis, que não são necessários para o Wear OS.

Estas são algumas das dificuldades no uso de fragmentos no app para Wear OS:

  • É necessário implementar o gesto de deslizar para dispensar. Caso contrário, quando o usuário deslizar a tela, ele sairá do app inteiro.
  • Se você estiver usando AmbientMode, personalize-o para que funcione corretamente. O AmbientMode está definido na atividade, então é preciso considerar isso ao implementar fragmentos.

Para oferecer suporte ao gesto de deslizar para dispensar com fragmentos, você precisa unir a visualização que contém o fragmento na classe SwipeDismissFrameLayout. Consulte O gesto de deslizar para dispensar para mais informações. Isso proporciona aos usuários uma experiência consistente com o app.

Observação:ao usar fragmentos, use FragmentManager.add em vez de FragmentManager.replace para oferecer suporte ao gesto de deslizar para dispensar. Isso ajuda a garantir que o fragmento anterior seja renderizado sob o fragmento de cima enquanto é arrastado.

Jetpack Navigation

O Jetpack Navigation pode funcionar no Wear OS, mas tem as mesmas desvantagens dos fragmentos. Ela adiciona trabalho de desenvolvimento e, como a hierarquia de um app para Wear OS geralmente é superficial e linear, ele não oferece muitas vantagens. Uma abordagem apenas de atividade é melhor.

Para aproveitar ao máximo a navegação do Jetpack, faça o seguinte:

  • Confira se cada fragmento usa um SwipeDismissFrameLayout como raiz e use manualmente a ação de dispensar para voltar ao gráfico de navegação.
  • Implemente um FragmentNavigator personalizado que renderize fragmentos uns sobre os outros.