Пользователи часто взаимодействуют с приложением не только с помощью сенсорного ввода.
- Настольные компьютеры. Пользователи перемещаются по экрану и вводят данные с помощью физических клавиатур и сенсорных панелей.
- Android TV. Пользователи перемещаются по интерфейсу с помощью D-pad.
- Автомобили. Водители и пассажиры взаимодействуют с системой с помощью поворотных контроллеров.
- Складные телефоны и планшеты. Пользователи подключают чехлы-клавиатуры и внешние устройства ввода.
Во всех этих сценариях ваше приложение должно отслеживать, какой интерактивный элемент активен на экране. Это активное состояние называется фокусом.
Основные факторы, обеспечивающие интуитивно понятную навигацию с помощью клавиатуры
Чтобы обеспечить удобство использования на больших экранах и устройствах без сенсорного экрана, разрабатывайте приложение с учетом следующих принципов:
- Логичный начальный фокус. Поместите начальный фокус на элемент, с которым пользователи, скорее всего, будут взаимодействовать при входе на экран.
- Последовательный порядок навигации. Обеспечьте предсказуемое одномерное (клавиша Tab) и двумерное (клавиши со стрелками или d-pad) перемещение фокуса.
- Постоянный фокус. Легко восстанавливайте фокус после прерываний, закрытия диалоговых окон или изменения конфигурации.
- Четкое состояние фокуса. Показывайте заметные и доступные визуальные подсказки (например, кольца фокуса или рябь), указывающие, какой элемент в данный момент находится в фокусе.
- Интуитивная прокрутка. Убедитесь, что элемент в фокусе и окружающий его контекст плавно прокручиваются в видимую область просмотра.
Руководства по фокусировке
Ознакомьтесь со следующими руководствами, чтобы узнать, как управлять фокусом и настраивать его в Compose:
- Цели фокусировки. Узнайте, как интерактивные компоненты становятся целями фокусировки и как сделать настраиваемые composable-функции фокусируемыми.
- Порядок обхода фокуса. Узнайте, как работает одномерный порядок появления и двумерная пространственная навигация, а также как настраивать пути обхода.
- Фокус в текстовых полях. Узнайте, как в однострочных и многострочных текстовых полях обрабатываются нажатия клавиши Tab и стрелок, а также как работает взаимодействие с редактором метода ввода на телевизоре.
- Группировка целей фокуса. Группируйте компоненты с помощью
focusGroupи перехватывайте перенаправление входа или выхода. - Восстановление фокуса. Восстанавливайте фокус на ранее активных дочерних элементах в контейнерах, управляйте компонентами навигации и фокусом при переходах между экранами.
- Обозначьте состояние фокуса. Используйте визуальные подсказки и специальные индикаторы, чтобы выделить компоненты в фокусе.
- Реагирование на фокус. Отслеживайте изменения фокуса и запрашивайте свойства состояния фокуса с помощью
onFocusChanged. - Программно запрашивайте фокус. Явно перемещайте фокус в ответ на действия пользователя или ошибки валидации.
- Перемещение и очистка фокуса. Программное перемещение или очистка фокуса с помощью
FocusManager. - Захват и освобождение фокуса. Захватывайте фокус для модальных подовзаимодействий и безопасно освобождайте его.
- Протестируйте навигацию с фокусом. Напишите автоматические тесты Compose, чтобы проверить взаимодействие с клавиатурой в одномерном и двумерном режимах, а также в текстовых полях.
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- Цели фокусировки
- Порядок обхода фокуса
- Как перейти к текстовому полю
- Цели по группам
- Как протестировать навигацию с фокусом