Skupienie w Jetpack Compose Glimmer

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć aplikacje na te typy urządzeń XR.
Okulary AI

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.

Ś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.

Rysunek 1. 3 stany fokusu w Glimmer w Jetpack Compose, które są rozróżniane za pomocą wizualnych informacji zwrotnych opartych na konturach.
  • 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 kolorGlimmerTheme.colors.surface z pełną nieprzezroczystością, aby wskazywać stan wyboru.