Open3

TextFieldの改行はonClickを呼び出す?【JetpackCompose】

pecopeco

AndroidStudio Hedgehog
Kotlin 1.8.10
JetpackCompose 1.6.1

問題

下記のようなコードを実装した際、BoxonClickが呼ばれてしまう現象に遭遇した

Box(
  Modifier.clickable{
      onClick = { // TODO: クリック時の動作を記述
  }
) {
  TextField(
       value = text,
       onValueChange = { text = it },
       keyboardOptions = KeyboardOptions(
           ImeAction = ImeAction.None  //Defaultでも同様
       )
  )
}
pecopeco

解決

結論から書くと下記のようにTextFieldonClickを設定したら解決した。

Box(
  Modifier.clickable{
      onClick = {
      // TODO: クリック時の動作を記述
  }
) {
  TextField(
       value = text,
       onValueChange = { text = it },
       keyboardOptions = KeyboardOptions(
           ImeAction = ImeAction.None
       )
       modifier = Modifier.clickable(
           onClick = {
               // 何もしない
           }
       )

  )
}
pecopeco

原因

ソフトウェアキーボードのエンターを押した際にonClickが呼ばれ、それがBoxに伝搬しているのが原因と思われる。
詳しい原因が分かったら書き加えたい。
知っている人がいたら教えてくれると嬉しいです。