列出 lazyColumn 时设置 scrollState
Setting the scrollState when listing a lazyColumn
要使用 paging 和 jetpack 复合库绘制数据,我使用 LazyColumn()
。数据每秒都会出现,我需要在下降时停止对元素的查看。现在,在列表顶部添加新数据时,它们会降低。我如何使用 scrollState
或任何其他方法做到这一点?
@Composable
fun HistoryTableList(
viewModel: HistoryViewModel = viewModel()
) {
val scrollState = rememberLazyListState()
val coroutineScope = rememberCoroutineScope()
LazyColumn(
state = scrollState,
modifier = Modifier
.padding(
HistoryListHorizontalPadding,
0.dp,
HistoryListHorizontalPadding,
HistoryListPaddingBottom
)
.fillMaxWidth(),
) {
items(historyItems) { historyRecord ->
if (historyRecord != null) {
// need to set scrollState to view elements without moving[![enter image description here][1]][1]
HistoryTableItem(history = historyRecord)
}
}
}
}
现在如果我下去他们就会移动
尝试在您的 items
上指定一些独特的 keys
:https://developer.android.com/jetpack/compose/lists#item-keys
这样,当您更新数据时,具有相同键的项目将保留在您的列表顶部。
要使用 paging 和 jetpack 复合库绘制数据,我使用 LazyColumn()
。数据每秒都会出现,我需要在下降时停止对元素的查看。现在,在列表顶部添加新数据时,它们会降低。我如何使用 scrollState
或任何其他方法做到这一点?
@Composable
fun HistoryTableList(
viewModel: HistoryViewModel = viewModel()
) {
val scrollState = rememberLazyListState()
val coroutineScope = rememberCoroutineScope()
LazyColumn(
state = scrollState,
modifier = Modifier
.padding(
HistoryListHorizontalPadding,
0.dp,
HistoryListHorizontalPadding,
HistoryListPaddingBottom
)
.fillMaxWidth(),
) {
items(historyItems) { historyRecord ->
if (historyRecord != null) {
// need to set scrollState to view elements without moving[![enter image description here][1]][1]
HistoryTableItem(history = historyRecord)
}
}
}
}
现在如果我下去他们就会移动
尝试在您的 items
上指定一些独特的 keys
:https://developer.android.com/jetpack/compose/lists#item-keys
这样,当您更新数据时,具有相同键的项目将保留在您的列表顶部。