ScrollState

一个可以被提升(hoisted)的状态对象,用于控制和观察可滚动组件(如 verticalScroll/horizontalScroll)的滚动。

这个对象通常是通过 com.m8test.script.core.api.ui.compose.slot.Slot.newScrollState 创建的。

Author

M8Test, [email protected], https://m8test.com

Functions

Link copied to clipboard
abstract fun animateScrollTo(scope: CoroutineScope, value: Int): Job

以动画方式(平滑滚动)滚动到指定位置。

Link copied to clipboard
abstract fun dispatchRawDelta(delta: Float): Float

分发原始滚动增量(以像素为单位),绕过所有与滚动相关的机制。

Link copied to clipboard

获取最大滚动位置(以像素为单位),作为一个可观察的只读状态。 这个值表示内容超出视口的大小。如果内容没有超出,则为 0。

Link copied to clipboard
abstract fun getStates(): Set<SingleState>
Link copied to clipboard

获取当前滚动位置(以像素为单位),作为一个可观察的只读状态。

Link copied to clipboard

获取视口在滚动轴上的大小(以像素为单位),作为一个可观察的只读状态。

Link copied to clipboard

获取一个只读状态,该状态表示此 ScrollableState 当前是否正在通过手势、惯性滑动或程序化方式滚动。

Link copied to clipboard
abstract fun scroll(scope: CoroutineScope, priority: (MutatePriorities) -> MutatePriority, scrollScopeBuilder: ScrollScope.() -> Unit): Job

调用此函数来控制滚动,并通过 ScrollScope 发送滚动事件。 所有改变逻辑滚动位置的操作都必须在 scroll 代码块内执行,以保证互斥性。

Link copied to clipboard
abstract fun scrollTo(scope: CoroutineScope, value: Int): Job

立即跳转到指定位置。

Link copied to clipboard
abstract fun setInitialValue(value: Int)

设置初始滚动位置(以像素为单位)。 这个值通常在组件首次组合(Composition)之前进行设置。