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ń.
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 ustawionoAmbientMode
, 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.