Состояние фокусировки обеспечивает наглядный визуальный индикатор, помогающий пользователям понять, какой элемент пользовательского интерфейса в данный момент удерживает фокус ввода. Все интерактивные компоненты Material 3 по умолчанию предоставляют встроенные индикаторы фокусировки.
Указание на тематическую направленность материала
Компоненты Material Design используют функцию ripple и LocalIndication для отображения визуальных изменений состояния. Чтобы прикрепить стандартную обратную связь фокуса Material Design к пользовательскому компоненту:
- Создайте объект
MutableInteractionSource, используяremember { MutableInteractionSource() }. - Передайте источник взаимодействия модификатору
indicationвместе сripple().
val interactionSource = remember { MutableInteractionSource() } Box( modifier = Modifier .clickable( interactionSource = interactionSource, indication = null ) { /* onClick */ } .indication( interactionSource = interactionSource, indication = ripple() ) ) { Text("Custom component with Material ripple") }
Реализуйте пользовательские индикаторы фокусировки.
Для настройки визуальных параметров (таких как масштабирование, границы или эффекты свечения):
- Создайте
IndicationNodeFactory. - Проанализируйте взаимодействия, инициированные источником взаимодействия элемента
InteractionSource). - Примените пользовательскую индикацию с помощью модификатора
indication.
var interactionSource = remember { MutableInteractionSource() } Card( modifier = Modifier .clickable( interactionSource = interactionSource, indication = MyHighlightIndication, enabled = true, onClick = { } ) ) { Text("hello") }
Рекомендуем вам
- Примечание: текст ссылки отображается, когда JavaScript отключен.
- Целевые показатели
- Порядок перемещения фокуса
- Реагируйте на фокус