当reverseLayout = false时启用LazyColumn自动滚动到底部

Ste*_*goo 7 android-jetpack-compose lazycolumn

我有一个 LazyColumn 保存一些项目。我听了来自 Room 的 Flow,一切都很好reverseLayout = true。当新项目插入数据库时​​,LazyColumn 滚动到底部并显示最后一个项目。但reverseLayout = true也会反转标题。所以我用 禁用了它reverseLayout = false。这不起作用,因为当插入项目时,它会显示在列表中,但列表不会滚动以显示底部项目。我必须手动滚动。

当 LazyColumn 因更改而重组时,如何滚动到底部项目items

我认为我不需要放置代码,因为使用 LazyColumn 时都会出现问题,但如果这很重要,请告诉我,我可以编辑代码并发布它们!

Thr*_*ian 8

在消息传递应用程序中,我使用项目大小滚动到底部,然后LazyListState

作为

coroutineScope.launch {
    scrollState.animateScrollToItem(messages.size - 1)
}
Run Code Online (Sandbox Code Playgroud)

每当用户输入一条消息时,它就会被添加到

 val messages = remember { mutableStateListOf<ChatMessage>() }
Run Code Online (Sandbox Code Playgroud)

您可以在 a 中调用滚动,LaunchedEffect(messages.size){...}仅当发生重组并且项目计数发生变化时才调用它