Jetpack Compose, пользовательская позиция курсора в TextField ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Jetpack Compose, пользовательская позиция курсора в TextField

Сообщение Anonymous »

Как установить курсор в случайном положении на TextField, когда он получает фокус?
Эквивалент editText.setSelection(position) в классической системе просмотра Android.
Это код, который я использую, чтобы текст редактирования автоматически получал фокус при добавлении на экран.
Я хотел бы иметь возможность перемещать курсор из положения по умолчанию, которое равно 0
val (getText, setText) = remember { mutableStateOf("hello") }
AutofocusEditText(
text = getText,
setText = setText
)

...

@Composable
private fun AutofocusEditText(
text: String,
setText : (String) -> Unit
) {
val focusState = remember { mutableStateOf(FocusState.Inactive) }
val focusRequester = FocusRequester()
val focusModifier = Modifier.focus()
Row(
modifier = Modifier.focusObserver { newFocusValue -> focusState.value = newFocusValue }
) {
val focusRequesterModifier =
Modifier.focusRequester(focusRequester)

TextField(
value = text,
modifier = focusModifier.then(focusRequesterModifier),
backgroundColor = Color.Transparent,
onValueChange = setText,
keyboardOptions = KeyboardOptions.Default.copy(
imeAction = ImeAction.Done
),
onImeActionPerformed = { action, softKeyboardController ->
if (action == ImeAction.Done) {
softKeyboardController?.hideSoftwareKeyboard()
}
}
)
}
onActive {
focusRequester.requestFocus()
}
}


Подробнее здесь: https://stackoverflow.com/questions/655 ... -textfield

Вернуться в «Android»