Фокус в создании

Когда пользователи взаимодействуют с вашим приложением, они часто используют несенсорные механизмы ввода:

  • Рабочие среды : Пользователи перемещаются по сайту и вводят данные с помощью физических аппаратных клавиатур и тачпадов.
  • Android TV : Пользователи перемещаются по интерфейсу с помощью D-pad .
  • Автомобильная промышленность : Водители и пассажиры взаимодействуют с помощью поворотных контроллеров .
  • Складные устройства и планшеты : пользователи подключают чехлы-клавиатуры и внешние устройства ввода.

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

Ключевые факторы для интуитивно понятной навигации с помощью клавиатуры

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

  1. Логичный первоначальный фокус : сосредоточьте первоначальный фокус на элементе, с которым пользователи, скорее всего, будут взаимодействовать при входе на экран.
  2. Единый порядок навигации : Обеспечивает предсказуемое перемещение фокуса как в одномерном ( клавиша Tab ), так и в двухмерном (клавиши со стрелками или D-pad) направлении.
  3. Постоянная фокусировка : Бесперебойное восстановление фокуса после прерываний, закрытия диалоговых окон или изменений конфигурации.
  4. Очистить состояние фокуса : Отобразить заметные, легкодоступные визуальные подсказки (например, кольца фокуса или рябь), указывающие, какой элемент в данный момент находится в фокусе.
  5. Интуитивно понятная прокрутка : Обеспечьте плавную прокрутку сфокусированного элемента и окружающего его контекста в видимую область экрана.

Направляющие фокусировки

Ознакомьтесь со следующими руководствами, чтобы узнать, как управлять фокусом и настраивать его в Compose:

  • Цели фокусировки : Узнайте, как интерактивные компоненты становятся целями фокусировки и как сделать так, чтобы пользовательские составные элементы могли быть сфокусированы.
  • Понимание порядка перемещения : разберитесь в порядке появления объектов в 1D-пространстве и навигации в 2D-пространстве, а также в том, как настраивать пути перемещения.
  • В центре внимания – текстовые поля : узнайте, как в однострочных и многострочных текстовых полях обрабатываются клавиши Tab и стрелки, а также как работает взаимодействие с IME на телевизоре.
  • Группировка целевых объектов фокусировки : Группировка компонентов с помощью focusGroup и перехват перенаправления на вход или выход.
  • Восстановление фокуса : Восстановление фокуса на ранее активные дочерние элементы в контейнерах, обработка компонентов навигации и управление фокусом при переходах между экранами.
  • Указание состояния фокуса : Примените визуальные подсказки и пользовательскую индикацию для выделения компонентов, находящихся в фокусе.
  • Реагирование на фокус : отслеживайте изменения фокуса и запрашивайте свойства состояния фокуса с помощью onFocusChanged .
  • Программный запрос фокуса : Явное перемещение фокуса в ответ на действия пользователя или ошибки проверки.
  • Перемещение и снятие фокуса : Программное перемещение или снятие фокуса с помощью FocusManager .
  • Захват и освобождение фокуса : Захват фокуса для модальных под-взаимодействий и его безопасное освобождение.
  • Тестирование навигации по фокусу : напишите автоматизированные тесты Compose для проверки взаимодействия с клавиатурой при работе с одномерными, двухмерными элементами и текстовыми полями.
{% verbatim %} {% endverbatim %} {% verbatim %} {% endverbatim %}