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配列のほかテンキーもほぼ同様。