BasicTextField и VisualTransformation – как изменить положение курсора?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 BasicTextField и VisualTransformation – как изменить положение курсора?

Сообщение Anonymous »

Я получил BasicTextField с VisualTransformation для ввода IBAN (он просто добавляет пробелы через определенные интервалы - «FR76 0000 0000 0000 0000 000»). Это VisualTransformation работает отлично, когда я набираю «FR76», а затем «0», он добавляет пробел автоматически.
Проблема возникает, когда я делаю ошибку: я написал «FR76 0000 0000 0000 0000 000» вместо «FR76 1111 0000 0000 0000 000», поэтому я собираюсь поместить курсор в конец «0000» и стереть его, чтобы я мог написать «1111».
Текущее решение, которое я реализовал, не позволяет мне сделать это, несмотря ни на что Да, курсор вынужден оставаться в конце BasicTextField. Что я могу сделать, чтобы это работало, НО сохранить поведение, при котором мой курсор остается в конце, если он в настоящее время находится в конце текстового поля?
Моя текущая визуальная трансформация:
visualTransformation = {
val output = when {
it.text.length it.text
else -> {
val first = it.text.substring(0, 2)
val formatRest = it.text
.substring(2)
.chunked(4)
.joinToString(" ")
"$first $formatRest"
}
}
TransformedText(
AnnotatedString(output),
object : OffsetMapping {
override fun originalToTransformed(offset: Int): Int = output.length
override fun transformedToOriginal(offset: Int): Int = it.text.length
}
)
},


Подробнее здесь: https://stackoverflow.com/questions/783 ... r-position
Ответить

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

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

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

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

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