一部のユーザーフローでは、アプリでフォーカスを特定のコンポーネントに明示的に移動する必要があります。たとえば、ユーザーが [検索] ボタンをクリックしたときに、検索入力フィールドに自動的にフォーカスを移動させたい場合があります。
FocusRequester を使用する
明示的にフォーカスをリクエストするには:
FocusRequesterインスタンスを作成して記憶します:val focusRequester = remember { FocusRequester() }。focusRequester修飾子を使用して、FocusRequesterをターゲット コンポーザブルにアタッチします。- イベント コールバック(
onClickなど)またはコルーチン スコープ内でrequestFocus()を呼び出します。
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
最初の画面のフォーカスを設定する
画面が最初に表示されたときに特定のコンポーネントに初期フォーカスを配置するには、LaunchedEffect(Unit) 内で requestFocus() をトリガーします。
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
コンテナ間を移動したり、別の画面から戻ったりするときに、focusRestorer() を親コンテナにアタッチして、最後にフォーカスされた子に自動的にフォーカスを戻すこともできます。詳しくは、フォーカスを復元するガイドをご覧ください。
あなたへのおすすめ
- 注: JavaScript がオフになっている場合はリンクテキストが表示されます
- フォーカス ターゲット
- フォーカス ターゲットをグループ化する
- フォーカスを復元する
- フォーカスを移動してクリアする