🍣

Jetpack Compose TextField のテキストの末尾にカーソルを置く

2022/06/28に公開

文字の入った TextField にフォーカスしてIMEが開いたときは、編集です。

TextFieldValue を使います。

TextFieldValue(
  text = text,
  selection = TextRange(text.length)
)

selection がカーソルの位置です。

@Composable
fun CustomTextField(
  text: String,
  focusRequester: FocusRequester,
  onChange: (String) -> Unit
) {

  var textFieldValue by remember {
    mutableStateOf(
      TextFieldValue(
        text = text,
        selection = TextRange(text.length)
      )
    )
  }

  TextField(
    value = textFieldValue,
    onValueChange = { changed ->
      textFieldValue = changed
      onChange(changed.text)
    },
    modifier = Modifier.focusRequester(focusRequester)
  )

}

👉 【Jetpack Compose】TextField の フォーカス と IME 開閉 と カーソル位置

Discussion