Как сохранить видимость определенного элемента LazyColumn при открытии клавиатуры?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как сохранить видимость определенного элемента LazyColumn при открытии клавиатуры?

Сообщение Anonymous »


Изображение
У меня есть нижний лист, используемый для поиска, и он имеет два состояния пользовательского интерфейса. Оба состояния используют один и тот же LazyColumn.
Состояние 1:

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

LazyColumn {
item { Row { ... } }   // search categories
item { Text(text = "Empty history") }
}
Состояние 2:

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

LazyColumn {
item { Text(text = "Results") }
items(results) { result ->
ResultCard(result)
}
}
Проблема в том, что в состоянии 1 мне нужно, чтобы текст «Пустая история» оставался видимым между первым элементом { Row() }» и клавиатурой без добавления дополнительной прокрутки.
Использование «Modifier.fillParentMaxHeight(weight).imePadding()» в «Text()» приводит к нежелательной дополнительной прокрутке, которой мне хотелось бы избежать.
Переключение с Переход от LazyColumn к столбцу для состояния 1 — не вариант, поскольку я хочу, чтобы оба состояния были структурно согласованными. Это вызывает множество других проблем в приложении.
Макет должен оставаться адаптивным, поскольку на небольших устройствах клавиатура почти закрывает текст «Пустая история», даже когда содержимое выровнено по верху.
Как я могу продолжать использовать LazyColumn, гарантируя, что «Пустая история» останется видимой над клавиатурой, не добавляя дополнительных расстояние прокрутки?

Подробнее здесь: https://stackoverflow.com/questions/798 ... oard-opens
Ответить

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

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

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

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

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