Положение прокрутки при открытии клавиатуры как в «Телеграмме»Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Положение прокрутки при открытии клавиатуры как в «Телеграмме»

Сообщение Anonymous »

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

@Composable
fun ChatScreenContent(
modifier: Modifier = Modifier,
// ...
) {
// ...

Column(
modifier = modifier.fillMaxSize(),
) {
LazyColumn(
modifier = Modifier.weight(1f),
contentPadding = PaddingValues(vertical = 8.dp),
state = scrollState,
) {
// ...
}

MessageInput(
modifier = Modifier.padding(horizontal = 4.dp).imePadding(),
// ...
)
Spacer(modifier = Modifier.height(8.dp))
}
}
Когда я использую android:windowSoftInputMode="adjustResize" и imePadding() с MessageInput, при открытии клавиатуры сообщения, которые были видны раньше, скрываются.
Изображение

Я попробовал использовать android:windowSoftInputMode="adjustPan" и удалил imePadding() из MessageInput. Теперь клавиатура не закрывает последнее видимое сообщение, но список сообщений уходит за пределы экрана, и я не могу прокрутить до первого сообщения.
Изображение

Мне бы хотелось, чтобы при открытии клавиатуры последнее сообщение отображалось на экране, а положение прокрутки остается неизменным. Как это было при использовании android:windowSoftInputMode="adjustPan". При этом, чтобы контент не выходил за пределы экрана и были видны все предыдущие сообщения.
При использовании все работает как надо

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

LazyColumn(
// ...
reverseLayout = true
)
Но, естественно, все сообщения отображаются в обратном порядке, а новые добавляются в начало списка...

Подробнее здесь: https://stackoverflow.com/questions/784 ... n-telegram
Ответить

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

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

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

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

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