Фокус в Jetpack Compose Glimmer

Применимые устройства XR
Это руководство поможет вам создать опыт использования этих типов XR-устройств.
Очки ИИ

Все компоненты Jetpack Compose Glimmer разработаны для работы со стандартными методами ввода, такими как касание или смахивание на сенсорной панели очков с искусственным интеллектом, а также поддерживают низкоуровневые команды ввода, специфичные для аппаратного обеспечения очков с искусственным интеллектом. Компоненты Jetpack Compose Glimmer автоматически обрабатывают необходимые события ввода. Для пользовательских компонентов можно использовать существующие API Compose, такие как Modifier.draggable или Modifier.scrollable для реализации особых интерактивных схем.

В очках искусственного интеллекта с дисплеем ввод с помощью указателя может повлиять на фокусировку:

  • Нажатие : прямое взаимодействие для активации элемента. Фокус перемещается на элемент, когда пользователь взаимодействует с ним.
  • Свайп : используется для навигации и прокрутки. Необработанные свайпы автоматически преобразуются в перемещение фокуса, обеспечивая плавную навигацию по пользовательскому интерфейсу без прямого ввода указателя.

Изменение фокуса и порядка по мере того, как пользователь перемещается по приложению.

Движение фокуса

В прокручиваемом контейнере фокус перемещается непрерывно при помощи свайпа по сенсорной панели. Для отдельных элементов, таких как ряд кнопок, каждое свайп перемещает фокус на один элемент за раз.

Порядок фокусировки

Как и в Jetpack Compose, в Jetpack Compose Glimmer используется одномерный поиск фокуса. Подробнее о порядке перемещения фокуса см. в разделе Изменение порядка перемещения фокуса .

Чтобы изменить изначально сфокусированный элемент, можно добавить Modifier.focusGroup() верхнего уровня и указать пользовательское свойство onEnter focusProperty :

Modifier.focusProperties {
    onEnter = {
        initialFocus.requestFocus()
        cancelFocusChange()
    }
}
.focusGroup()

Прокручиваемые контейнеры

Для оптимального пользовательского опыта прокручиваемые элементы, такие как списки, должны быть единственным крупным компонентом на экране. Избегайте размещения прокручиваемых списков непосредственно над или под другими интерактивными элементами, такими как кнопки, чтобы избежать путаницы в навигации и обеспечить плавное и предсказуемое перемещение фокуса.

Состояния фокуса по умолчанию

Jetpack Compose Glimmer реализует состояния фокуса по умолчанию для всех своих интерактивных компонентов, включая поверхности, карточки и элементы списков, обеспечивая последовательную и четкую визуальную обратную связь во время взаимодействия с пользователем.

Рисунок 1. Три состояния фокуса в Jetpack Compose Glimmer, которые различаются с помощью визуальной обратной связи на основе контура.
  • По умолчанию : цвет фона кнопки берется из GlimmerTheme.colors.surface , ее основное содержимое вычисляет цвет содержимого этой поверхности, а значки — из GlimmerTheme.colors.primary .

  • Фокус : ширина границы увеличена для передачи фокуса.

  • Фокус + Нажато : фон устанавливается на GlimmerTheme.colors.surface с полной непрозрачностью, чтобы обозначить выбранное состояние.