Wszystkie komponenty Glimmer w Jetpack Compose są zaprojektowane do współpracy ze standardowymi metodami wprowadzania danych podobnymi do tych stosowanych w telefonach, takimi jak dotknięcie lub przesunięcie palcem na touchpadzie okularów z AI, a także do odbierania poleceń wejściowych specyficznych dla sprzętu okularów z AI, takich jak przyciski aparatu i wyświetlacza. Komponenty Jetpack Compose Glimmer automatycznie obsługują niezbędne zdarzenia wprowadzania danych. W przypadku komponentów niestandardowych możesz użyć istniejących interfejsów API Compose, takich jak Modifier.draggable lub Modifier.scrollable, aby wdrożyć określone zachowania interakcji.
W przypadku okularów z AI z wyświetlaczem sterowanie wskaźnikiem może wpływać na ostrość:
- Kliknięcie: bezpośrednia interakcja w celu aktywowania elementu. Fokus przenosi się na element, gdy użytkownik wchodzi z nim w interakcję.
- Przesuwanie: służy do nawigacji i przewijania. Nieobsługiwane gesty przesuwania automatycznie przekładają się na ruchy fokusu, co umożliwia płynną nawigację po interfejsie bez bezpośredniego wprowadzania danych wskaźnika.
Zachowanie i kolejność nawigacji
Śledź ruch fokusu i zmiany kolejności, gdy użytkownik porusza się po aplikacji.
Przesuwanie zaznaczenia
W przypadku kontenera z paskiem przewijania zaznaczenie przesuwa się w sposób ciągły wraz z przesunięciem palca po touchpadzie. W przypadku elementów dyskretnych, takich jak wiersz przycisków, każde przesunięcie powoduje przeniesienie fokusu na kolejny element.
Kolejność zaznaczania
Podobnie jak w Jetpack Compose, Jetpack Compose Glimmer używa jednowymiarowego wyszukiwania fokusu. Więcej informacji o kolejności przechodzenia między elementami znajdziesz w artykule Zmiana kolejności przechodzenia między elementami.
Aby zmienić element, na którym początkowo skupia się fokus, możesz dodać element najwyższego poziomu
Modifier.focusGroup() i określić niestandardowy element onEnter
focusProperty:
Modifier.focusProperties {
onEnter = {
initialFocus.requestFocus()
cancelFocusChange()
}
}
.focusGroup()
Kontenery z przewijaniem
Aby zapewnić optymalną wygodę użytkowników, kontenery przewijania, takie jak listy, powinny być jedynym głównym komponentem na ekranie. Nie umieszczaj listy z możliwością przewijania bezpośrednio nad ani pod innymi elementami interaktywnymi, takimi jak przyciski. Pozwoli to uniknąć nieporozumień związanych z nawigacją i zapewni płynne, przewidywalne przesuwanie fokusu.
Domyślne stany aktywne
Biblioteka Jetpack Compose Glimmer implementuje domyślne stany fokusu w swoich interaktywnych komponentach, w tym w powierzchniach, kartach i elementach listy, zapewniając spójne i wyraźne wizualne informacje zwrotne podczas interakcji użytkownika.
Domyślny: kolor tła przycisku jest wyliczany na podstawie
GlimmerTheme.colors.surface, jego główna treść oblicza kolor treści tej powierzchni, a ikony sąGlimmerTheme.colors.primary.Zaznaczony: szerokość obramowania jest zwiększona, aby wskazywać zaznaczenie.
Skupienie + naciśnięcie: tło jest ustawione na kolor
GlimmerTheme.colors.surfacez pełną nieprzezroczystością, aby wskazywać stan wyboru.