Wszystkie komponenty Glimmer w Jetpack Compose są zaprojektowane do współpracy ze standardowymi metodami wprowadzania danych, takimi jak kliknięcie lub przesunięcie na touchpadzie okularów. Obsługują też polecenia wejściowe niższego poziomu, które są specyficzne dla sprzętu na okularach wyświetlających. Komponenty Jetpack Compose Glimmer automatycznie obsługują niezbędne zdarzenia wejściowe.
W przypadku standardowych działań, takich jak przewijanie i przeciąganie, używaj komponentów Jetpack Compose Glimmer, aby zapewnić spójność. W przypadku komponentów niestandardowych lub zachowań interakcji dostosowanych do potrzeb możesz jednak użyć istniejących interfejsów API Compose, takich jak Modifier.draggable lub Modifier.scrollable.
Wprowadzanie danych za pomocą wskaźnika i zaznaczanie
W przypadku okularów z wyświetlaczem wskaźnik 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 ostrości, co umożliwia płynną nawigację po interfejsie bez bezpośredniego wprowadzania danych wskaźnikiem.
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 po przesunięciu palcem 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()
// Prevent focus from exiting the group
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 przenoszenie 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 określany na podstawie
GlimmerTheme.colors.surface, a jego główna treść oblicza kolor treści tej powierzchni.Zaznaczony: szerokość obramowania jest zwiększona, aby wskazywać zaznaczenie.
Skupienie + naciśnięcie: tło jest ustawione na
GlimmerTheme.colors.surfaceo zwiększonej nieprzezroczystości, aby wskazywać stan zaznaczenia.