Моя цель — создать 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
Мобильная версия