Open3
TextFieldの改行はonClickを呼び出す?【JetpackCompose】
AndroidStudio Hedgehog
Kotlin 1.8.10
JetpackCompose 1.6.1
問題
下記のようなコードを実装した際、Box
のonClick
が呼ばれてしまう現象に遭遇した
Box(
Modifier.clickable{
onClick = { // TODO: クリック時の動作を記述
}
) {
TextField(
value = text,
onValueChange = { text = it },
keyboardOptions = KeyboardOptions(
ImeAction = ImeAction.None //Defaultでも同様
)
)
}
解決
結論から書くと下記のようにTextField
にonClick
を設定したら解決した。
Box(
Modifier.clickable{
onClick = {
// TODO: クリック時の動作を記述
}
) {
TextField(
value = text,
onValueChange = { text = it },
keyboardOptions = KeyboardOptions(
ImeAction = ImeAction.None
)
modifier = Modifier.clickable(
onClick = {
// 何もしない
}
)
)
}
原因
ソフトウェアキーボードのエンターを押した際にonClickが呼ばれ、それがBox
に伝搬しているのが原因と思われる。
詳しい原因が分かったら書き加えたい。
知っている人がいたら教えてくれると嬉しいです。