如何在 Jetpack Compose 中为 LazyColumn 设置默认滚动位置而没有任何反馈或动画

Posted

技术标签:

【中文标题】如何在 Jetpack Compose 中为 LazyColumn 设置默认滚动位置而没有任何反馈或动画【英文标题】:How to set default scroll position for LazyColumn without any feedback or animation in Jetpack Compose 【发布时间】:2021-11-09 04:34:18 【问题描述】:

我希望我的 LazyColumn 从中间显示列表中的项目,以便我可以向上或向下滚动。我使用了 rememberLazyListState,但它有一些延迟,我不希望在 UI 中发生滚动操作。

【问题讨论】:

【参考方案1】:
val scrollState = rememberLazyListState(initialFirstVisibleItemIndex = 50)
val scrollState = rememberLazyListState(initialFirstVisibleItemScrollOffset = 3700)

如果列表中有100 项目,您可以使用任何参数从默认位置开始,您可以设置initialFirstVisibleItemIndex = 50,因此它从中间开始,您也可以设置offset,但只需使用任何一个其中。

它对我有用,没有任何延迟

【讨论】:

它适用于第一个列表,但是当我更新列表时,它不再起作用了。 好的,更新列表是什么意思?每次添加或删除项目时是否要对齐到中间? @Mehranjp73 这就是参数名称也说它是initial 但是为什么您希望列表始终位于中间,您可以做的是在每次更新列表时调用scrollToItem 方法。 它使用 scrollToItem 滚动,但它显示了列表的移动。

以上是关于如何在 Jetpack Compose 中为 LazyColumn 设置默认滚动位置而没有任何反馈或动画的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jetpack Compose 中为 LazyColumn 设置默认滚动位置而没有任何反馈或动画

将 Jetpack Compose 升级到 1.0.0-beta07 后出现 java.lang.NoSuchMethodError

Jetpack Compose ScrollableTabRow 如何调整最小宽度

如何在jetpack compose中将项目居中在Surface内

如何在jetpack compose上回收webview?

如何在 Jetpack compose 中制作可重用的组件?