【发布时间】:2022-10-23 20:12:47
【问题描述】:
我有一个 LazyColumn 嵌套 LazyRows(类似于 Netflix 或 Spotify 主页提要)。我有一个LazyListState 被传递给LazyColumn。当用户滚动列表时,我使用这个LazyListState 进行一些 UI 更改。
我有一个重置按钮,单击该按钮时我想向上滚动列表并重置页面。这样做是这样的:
LaunchedEffect(
key1 = scrollToTopState,
) {
if (scrollToTopState) {
listState.scrollToItem(0)
viewModel.updateScrollState(false)
}
}
它按预期工作。但是问题是它不会重置嵌套LazyRows 的位置。是否可以将LazyListState 及其嵌套行重置为全部滚动到初始位置?我不想为所有行维护ListState,所以我希望这里有一个更简单的解决方案。谢谢!
【问题讨论】:
-
每个 LazyRow 都应该具有完全相同的 LaunchedEffect 重置自己的列表状态
-
感谢@vitidev 的评论。是的,这就是我在问题中提到的,这是我能想到的解决方案。但我希望有一个更简单的解决方案,因为这个解决方案不能很好地扩展。
标签: android android-jetpack-compose