Как отобразить последний элемент вверху (пустое пространство внизу) в LazyColumn (пользовательский интерфейс чата) в JetAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как отобразить последний элемент вверху (пустое пространство внизу) в LazyColumn (пользовательский интерфейс чата) в Jet

Сообщение Anonymous »

Я создаю интерфейс чата в Jetpack Compose, используя LazyColumn.
Когда пользователь отправляет новое сообщение, я хочу, чтобы его последнее сообщение отображалось вверху, а более старые сообщения должны автоматически прокручиваться вверх.
Сейчас у меня есть это:

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

   val listState = rememberLazyListState()

LazyColumn(
state = listState,
modifier = Modifier
.weight(1f)
.fillMaxWidth(),
contentPadding = PaddingValues(horizontal = 5.dp, vertical = 10.dp),
verticalArrangement = Arrangement.spacedBy(10.dp)
) {
items(
items = chatMessages,
) { chatMessage ->
ChatBubble(
message = chatMessage,
modifier = Modifier.animateItem()
)
}
}

fun scroll() {
listState.animateScrollToItem(
index = chatMessages.size,
scrollOffset = 0
)
}
При таком подходе новые сообщения появляются внизу, а не вверху.
Последнее сообщение не попадает наверх, потому что нет списка для прокрутки.
Я хочу, чтобы последнее сообщение было вверху, чтобы под ним можно было увидеть ответ чата; в противном случае пользователям придется прокручивать страницу.

Подробнее здесь: https://stackoverflow.com/questions/797 ... olumn-chat
Ответить

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

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

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

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

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