Nawigacja

Po zaprojektowaniu poszczególnych ekranów dla każdej ścieżki użytkownika możesz mieć kilka pionowych lub pojedynczych ekranów. Następnie musisz zdecydować, jak zaprojektować te ekrany pod kątem współpracy i jak wdrożyć nawigację.

Projektowanie

Hierarchia w aplikacji powinna być prosta i liniowa, jak opisano we wskazówkach dotyczących projektowania aplikacji.

Na początek w programie uruchamiającym aplikację powinna otworzyć się najczęstsza ścieżka użytkownika. Zaprojektuj każdą ścieżkę użytkownika tak, aby najważniejsze treści znajdowały się na górze. W przypadku kontenerów pionowych umieść na dole link do innych, mniej popularnych ścieżek użytkownika i ustawień.

Rysunek 1. Najważniejsze treści powinny znajdować się u góry kontenerów w pionie.

Gdy użytkownicy otwierają jeden z ekranów, upewnij się, że mogą poruszać się po stosie wstecznym za pomocą gestu przesunięcia, aby zamknąć.

Wdrażanie nawigacji

Implementując nawigację, masz 3 możliwości opisane w tych sekcjach:

  • Tylko działania (zalecane)
  • Działania i fragmenty
  • Nawigacja w Jetpacku

Tylko aktywności

Ponieważ ekrany pionowe mają zwykle głębokość 1 poziomu, możesz wdrożyć wszystkie ekrany za pomocą działań i bez używania fragmentów.

Zdecydowanie zalecamy takie podejście. Upraszcza kod, a aktywności automatycznie obsługują przesuwanie, aby zamknąć. Ułatwia to też wdrażanie trybu nieaktywnego.

Uwaga: jeśli nie używasz fragmentów, włącz dziedziczenie ustawień z elementu ComponentActivity. Inne typy aktywności korzystają z elementów interfejsu, które nie są potrzebne w Wear OS.

Działania i fragmenty

Możesz używać fragmentów z działaniami w aplikacji na Wear OS. Jednak nie zalecamy tego, ponieważ nie ma wyraźnej korzyści wynikającej z używania fragmentów do utworzenia płytkiej i płaskiej architektury.

Uwaga: jeśli używasz fragmentów, włącz dla nich dziedziczenie z elementu FragmentActivity. Inne typy aktywności korzystają z elementów interfejsu, które nie są Ci potrzebne w Wear OS.

Oto niektóre problemy z używaniem fragmentów w aplikacji na Wear OS:

  • Aby zamknąć taką funkcję, musisz wdrożyć ją samodzielnie. W przeciwnym razie, gdy użytkownik przesunie palcem, opuści całą aplikację.
  • Jeśli używasz biblioteki AmbientMode, musisz ją dostosować, aby działała prawidłowo. Dla działania ustawiono AmbientMode, więc musisz wziąć to pod uwagę podczas implementacji fragmentów.

Aby obsługiwać otwieranie z użyciem fragmentów z przesuwaniem, musisz spakować widok zawierający fragment do klasy SwipeDismissFrameLayout. Więcej informacji znajdziesz w sekcji Gest przesuwania, aby zamknąć. Dzięki temu użytkownicy będą mogli w spójny sposób korzystać z Twojej aplikacji.

Uwaga: jeśli używasz fragmentów, do obsługi gestu przesuwania palcem używaj obiektu FragmentManager.add, a nie FragmentManager.replace. Dzięki temu poprzedni fragment będzie renderowany pod górnym fragmentem podczas jego przesuwania.

Nawigacja w Jetpacku

Jetpack Navigation działa na Wear OS, ale ma te same wady co fragmenty. Wymaga to nakładu pracy programistycznej, a ponieważ hierarchia aplikacji na Wear OS jest zazwyczaj płytka i liniowa, nie oferuje wielu korzyści. Najlepiej jest skupić się na działaniach.

Aby w pełni wykorzystać możliwości Jetpack Navigation:

  • Upewnij się, że każdy fragment ma jako główny element SwipeDismissFrameLayout, i ręcznie kliknij działanie zamykania, aby wrócić do wykresu nawigacyjnego.
  • Zaimplementuj niestandardowy obiekt FragmentNavigator, który renderuje fragmenty na siebie.