JetpackComposeのKeyBoard
TextFieldのパラメータでKeyboardの種類と完了時のActionを設定できる。
細かく把握してなかったので、UIの差異をまとめておく。
KeyboardOptions
class KeyboardOptions constructor(
val capitalization: KeyboardCapitalization = KeyboardCapitalization.None,
val autoCorrect: Boolean = true,
val keyboardType: KeyboardType = KeyboardType.Text,
val imeAction: ImeAction = ImeAction.Default
)
KeyBoardの設定は上記クラスを使用して行う。
KeyBoardType
ImeAction
IME(インプットメソッド)の設定。後述のKeyboardActionsパラメータにて、タップ時の処理を実装できる。
ImeOptions | 意味合い | |
---|---|---|
Default | 決定 | |
Done | ユーザの入力が終了 | |
Go | 入力された値への移動 | |
Next | 次の入力に移る | |
None | No Action | |
Previous | 前の入力に戻る | |
Search | 検索を開始 | |
Send | 入力値を送信 |
KeyboardCapitalization
大文字・小文字設定
| KeyboardCapitalization | 説明
| - | - | - |
| Characters | 全大文字 |
| None | 全小文字 |
| Sentences | 文頭大文字 |
| Words | 頭文字大文字 |
KeyboardActions
imeAction.kt
TextField(
value = text,
onValueChange = onTextChanged,
keyboardOptions = KeyboardOptions(imeAction = ImeAction.Done),
keyboardActions = KeyboardActions(onDone = {
/* todo : do something */
keyboardController?.hide() // ※ 明示的に閉じる時に使用
})
)
TextFieldでは上のように使用する。
KeyboardActions(onDone = ~~
終わり
QWERTY配列のほかテンキーもほぼ同様。