フォーカス状態は、現在どの UI 要素が入力フォーカスを持っているかをユーザーが理解するのに役立つ明確な視覚的手がかりを提供します。インタラクティブなマテリアル 3 コンポーネントはすべて、デフォルトで組み込みのフォーカス インジケーターを提供します。
マテリアル テーマ設定のフォーカス表示
マテリアル コンポーネントは、ripple 関数と LocalIndication を使用して、視覚的な状態の変化を描画します。標準のマテリアル フォーカス フィードバックをカスタム コンポーネントにアタッチするには:
remember { MutableInteractionSource() }を使用してMutableInteractionSourceを作成します。- インタラクション ソースを
ripple()とともにindication修飾子に渡します。
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 がオフになっている場合はリンクテキストが表示されます
- フォーカス ターゲット
- フォーカス移動順序
- フォーカスに反応する