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

Форум для тех, кто программирует под 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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