Skupienie w Jetpack Compose Glimmer

Odpowiednie urządzenia XR
Te wskazówki pomogą Ci tworzyć rozwiązania na te typy urządzeń XR.
Okulary wyświetlające

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.

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

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 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.surface o zwiększonej nieprzezroczystości, aby wskazywać stan zaznaczenia.