Как написать текст в TextFields в ленивом столбце внизу экранаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как написать текст в TextFields в ленивом столбце внизу экрана

Сообщение Anonymous »

У меня проблема с TextFields внутри LazyColumn.
Моя цель — создать LazyColumn с кучей TextFields там, где это возможно
< ul>
[*]прокрутите, чтобы увидеть все содержимое LazyColumn, даже если клавиатура активна.
[*]введите новую строку в TextField, и эта строка не будет скрыта клавиатура
[*]введите текст, и клавиатура не закроется сразу

Это мой код:

Код: Выделить всё

LazyColumn(
modifier = Modifier.background(Color.Blue)
) {
items(count = 20, key = { it }) {
var text by remember { mutableStateOf("$it.") }
OutlinedTextField(
value = text,
onValueChange = { text = it },
modifier = Modifier
.fillMaxWidth()
.padding(2.dp)
.background(Color.Gray)
)
}
}
Проблема:
При использовании этого кода клавиатура будет скрывать все новые строки, когда TextField находится внизу Колонка. Вы можете вручную прокрутить вниз и увидеть новые строки, но это не идеальное решение. Кроме того, если под ним есть больше текстовых полей, они скрыты и недоступны при прокрутке, поэтому, если я хочу сначала ввести текст в TextField 17, а затем в TextField 18, мне придется между ними закрыть клавиатуру.
Изображение
Попытка:
Я пытался решить эту проблему, установив android:windowSoftInputMode="adjustResize" в AndroidManifest, но когда я щелкните TextField в нижней части экрана, LazyColumn прокрутится, и клавиатура закроется.
Изображение
Здесь есть хорошее объяснение этого поведения, и предлагается следующее:

Теперь обходные пути включают использование столбец вместо ленивого столбца; создание собственного ленивого столбца с использованием пользовательского отложенного Composable и вручную обработка размера кучи для Composable, чтобы последнее поле не выходило за пределы композиции.

Предполагая, что у меня огромное количество текстовых полей и я не могу использовать столбец, есть ли другой способ, кроме создания собственного LazyColumn?
Это звучит как действительно сложный способ решения проблемы что Я ожидал, что это будет довольно часто (или размещение TextFields внутри LazyColumns — это редкость?)
Большое спасибо за вашу помощь! :)

Подробнее здесь: https://stackoverflow.com/questions/742 ... the-screen
Ответить

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

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

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

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

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