Po zaprojektowaniu poszczególnych ekranów dla każdej ścieżki użytkownika możesz mieć kilka ekranów pionowych lub pojedynczych. Następnie musisz zdecydować, jak zaprojektować te ekrany, aby ze sobą współpracowały, i jak wdrożyć nawigację.
Projektowanie
Zadbaj o to, aby hierarchia aplikacji była płytka i liniowa, zgodnie z wytycznymi dotyczącymi projektowania aplikacji.
Na początek program uruchamiający aplikację powinien otwierać najczęstszą ścieżkę użytkownika. Projektuj każdą ścieżkę użytkownika, umieszczając najważniejsze treści na górze. W przypadku kontenerów pionowych użyj dolnej części, aby połączyć się z innymi, mniej typowymi ścieżkami użytkownika i ustawieniami.
Rysunek 1. Najważniejsze treści powinny znajdować się u góry kontenerów pionowych.
Gdy użytkownicy wchodzą na jeden z Twoich ekranów, upewnij się, że mogą używać gestu przesuwania, aby zamknąć ekran i przejść do poprzedniego ekranu na stosie wstecznym.
Wdrażanie nawigacji
Podczas wdrażania nawigacji masz 3 opcje opisane w sekcjach poniżej:
- tylko aktywności (zalecane podejście);
- Aktywności i fragmenty
- Jetpack Navigation
Tylko aktywności
Ekrany pionowe mają zwykle jeden poziom, więc możesz zaimplementować wszystkie ekrany za pomocą aktywności i bez używania fragmentów.
Zdecydowanie zalecamy to podejście. Upraszcza kod, a aktywności automatycznie obsługują zamykanie gestem. Ułatwia to też wdrożenie dźwięków otoczenia.
Uwaga: jeśli nie używasz fragmentów, ustaw dziedziczenie aktywności z klasy ComponentActivity. Pozostałe typy aktywności korzystają z elementów interfejsu dostosowanych do urządzeń mobilnych, które nie są potrzebne w przypadku Wear OS.
Aktywności i fragmenty
W aplikacji na Wear OS możesz używać fragmentów z aktywnościami. Nie zalecamy jednak tego rozwiązania, ponieważ nie ma wyraźnych korzyści z używania fragmentów do tworzenia płytkiej i płaskiej architektury.
Uwaga: jeśli używasz fragmentów, spraw, aby dziedziczyły po FragmentActivity. Pozostałe typy aktywności korzystają z elementów interfejsu dostosowanych do urządzeń mobilnych, które nie są potrzebne w przypadku Wear OS.
Korzystanie z fragmentów w aplikacji na Wear OS może być trudne z tych powodów:
- Musisz samodzielnie wdrożyć funkcję przesuwania w celu zamknięcia. W przeciwnym razie, gdy użytkownik przesunie palcem, zamknie całą aplikację.
-
Jeśli korzystasz z
AmbientMode, musisz dostosować tę usługę, aby działała prawidłowo.AmbientModejest ustawiony w aktywności, więc musisz wziąć to pod uwagę podczas wdrażania fragmentów.
Aby obsługiwać zamykanie fragmentów przez przesunięcie, musisz umieścić widok zawierający fragment w klasie SwipeDismissFrameLayout. Więcej informacji znajdziesz w sekcji Gest przesuwania palcem, aby zamknąć. Dzięki temu użytkownicy będą mogli korzystać z aplikacji w spójny sposób.
Uwaga: podczas korzystania z fragmentów używaj
FragmentManager.add
zamiast
FragmentManager.replace
w celu obsługi gestu przesuwania w celu zamknięcia.
Dzięki temu poprzedni fragment będzie renderowany pod górnym fragmentem podczas przesuwania.
Jetpack Navigation
Biblioteka Jetpack Navigation może działać w Wear OS, ale ma te same wady co fragmenty. Wymaga to dodatkowej pracy deweloperskiej, a ponieważ hierarchia aplikacji na Wear OS jest zwykle płytka i liniowa, nie daje to wielu korzyści. Najlepsze jest podejście oparte wyłącznie na aktywności.
Aby w pełni wykorzystać nawigację Jetpack, wykonaj te czynności:
-
Upewnij się, że każdy fragment używa elementu
SwipeDismissFrameLayoutjako elementu głównego, i ręcznie użyj działania zamykania, aby wrócić do grafu nawigacji. -
Zaimplementuj niestandardowy element
FragmentNavigator, który renderuje fragmenty na sobie.