Zdarzenie nawigacji

Navigation Event to biblioteka, która udostępnia rozwiązanie Kotlin Multiplatform (KMP) do integrowania zdarzeń nawigacji na poziomie systemu z aplikacją. Jest to warstwa podstawowa do obsługi wskazówek nawigacyjnych na różnych obsługiwanych platformach.

Kluczowych pojęć

System zdarzeń nawigacyjnych jest oparty na scentralizowanym modelu dyspozytor-obsługa, który jest często używany w hierarchii nadrzędny-podrzędny do mapowania złożonych struktur interfejsu, takich jak te w Jetpack Compose.

Klasa NavigationEventDispatcher jest centralną klasą odpowiedzialną za zarządzanie wszystkimi zarejestrowanymi odbiorcami zdarzeń nawigacyjnych (NavigationEventHandler) i koordynowanie przepływu zdarzeń.

W konfiguracji hierarchicznej wszyscy dyspozytorzy w tym samym łańcuchu mają jeden obiekt NavigationEventProcessor, który zarządza stanem globalnym i zapewnia jeden ujednolicony porządek wysyłania w całym drzewie.

NavigationEventHandler to klasa abstrakcyjna, która odbiera i obsługuje zdarzenia nawigacji wysyłane przez NavigationEventDispatcher. Definiuje metody wywołania zwrotnego, które odpowiadają różnym etapom cyklu życia gestu nawigacji, np. gdy gest się rozpoczyna, postępuje, kończy lub jest anulowany.

Moduły obsługi mogą reagować na te zdarzenia, aby aktualizować interfejs lub stan aplikacji w odpowiedzi na działania użytkownika związane z nawigacją. W dispatcherze można zarejestrować wiele modułów obsługi, które są wywoływane na podstawie priorytetu i kolejności rejestracji.

NavigationEvent to klasa danych, która zawiera szczegóły gestu nawigacyjnego.

NavigationEventInfo to klasa abstrakcyjna, która zawiera kontekstowe informacje o stanie nawigacji.

NavigationEventInput to klasa abstrakcyjna komponentów, które generują i wysyłają zdarzenia nawigacji. Jest to „wejście” systemu nawigacji, które tłumaczy zdarzenia specyficzne dla platformy (takie jak gesty cofania w systemie czy kliknięcia przycisków) na standardowe zdarzenia, które można wysyłać do NavigationEventDispatcher.

Obsługiwane wskazówki nawigacyjne i aktywatory

System zdarzeń nawigacji został zaprojektowany tak, aby obejmował nie tylko systemowy przycisk Wstecz. Obsługuje on wiele kierunków nawigacji i metod wprowadzania danych na różnych platformach.

Obsługiwane kierunki

Różne platformy obsługują różne kierunki nawigacji:

Platforma

Wstecz

W górę

Przekaż dalej

Strona główna

Telefon z Androidem

🚫

Tablet z Androidem

🚫

Sieć (przeglądarka)

🚫

iOS (iPhone/iPad)

🚫

Obsługiwane wyzwalacze

Obsługa danych wejściowych jest realizowana za pomocą różnych mechanizmów na każdej platformie:

Wyzwalacz

Telefon z Androidem

Sieć (przeglądarka)

iOS (iPhone/iPad)

Przycisk Wstecz na klawiaturze

✅ Wstecz

✅ Wstecz

Przycisk Wstecz w oprogramowaniu

🚫

✅ Wstecz

✅ Wstecz

Przycisk oprogramowania w górę

✅ Wzrost

🚫

🚫

Gest od lewej

✅ Wstecz

✅ Wstecz

Gest od prawej

✅ Wstecz

✅ Przekaż dalej

Gest od dołu

✅ Strona główna

🚫

✅ Strona główna