Объект фокусировки — это элемент пользовательского интерфейса, на который можно переместить фокус клавиатуры. Пользователи могут перемещать фокус клавиатуры с помощью клавиши Tab или клавиш со стрелками:
- Tab или Shift+Tab — перемещают фокус вперед или назад в порядке отображения объектов в одном измерении.
- Клавиши управления направлением — перемещение фокуса в двух измерениях ( Вверх , Вниз , Влево и Вправо ).
Интерактивные элементы пользовательского интерфейса по умолчанию являются объектами фокусировки.
Интерактивный компонент по умолчанию является объектом фокусировки. Другими словами, элемент пользовательского интерфейса становится объектом фокусировки, если пользователи могут нажимать на него или щелкать по нему.
Например, рассмотрим три компонента Card . Если первая и третья карточки интерактивны (они определяют функцию обратного вызова onClick ), а вторая карточка носит чисто информационный характер (не обрабатывает клики), то нажатие клавиши Tab на первой карточке пропускает вторую карточку и переходит непосредственно к третьей.
Card(onClick = { /* First card action */ }) { Text("Card 1 (Interactive)") } Card { Text("Card 2 (Informational - not focusable)") } Card(onClick = { /* Third card action */ }) { Text("Card 3 (Interactive)") }
Вы можете сделать вторую карточку объектом фокусировки, указав параметр onClick :
Card(onClick = { /* Second card action */ }) { Text("Card 2 (Now interactive and focusable)") }
Модификатор clickable также превращает пользовательские или стандартные элементы пользовательского интерфейса в объекты фокусировки. Подробнее см. раздел «Нажатие и касание» .
Box( modifier = Modifier .clickable { /* Handle click */ } ) { Text("Custom interactive element") }
Сделайте составной элемент некликабельным объектом фокусировки.
Модификатор focusable делает составной элемент целью фокусировки без необходимости применения семантики щелчка. Пользователи могут перемещать фокус клавиатуры на измененный составной элемент (например, для просмотра содержимого с помощью инструментов специальных возможностей или прокрутки области просмотра), но нажатие клавиш Enter или Space не запускает действие щелчка:
Box( modifier = Modifier .focusable() ) { Text("Non-clickable focus target") }
Сделать композицию нефокусируемой
В некоторых случаях может потребоваться исключить интерактивный элемент из навигации с помощью клавиатуры, не отключая при этом события указателя или щелчка. Вы можете предотвратить получение фокуса компонентом, установив параметр canFocus = false в модификаторе focusProperties :
var checked by remember { mutableStateOf(false) } Switch( checked = checked, onCheckedChange = { checked = it }, // Prevent component from being focused modifier = Modifier .focusProperties { canFocus = false } )
Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Порядок перемещения фокуса
- Фокусировка на текстовых полях
- Целевые показатели фокусировки группы
- Укажите состояние фокуса
- Тестирование навигации по фокусу