我正在使用实验性浏览器Jetpack compose 是基于LazyColumn
/Row
.
我想做的是设置一些阈值,确定在开始滚动到下一页之前我需要移动手指多少。默认行为是,只要我移动手指,它就会开始滚动,但我希望有一个更大的阈值,即在发生任何视觉滚动之前需要移动手指多少。
我看过FlingBehaviour
参数,但我不知道如何使用它来完成我想要的。 (或者至少增加一些页面之间翻页的“阻力”,这样就不那么敏感了)
你有什么想法吗?
该阈值由控制flingBehavior
争论。
PagerDefaults.flingBehavior(pagerState)
提供分页工作,目前只有动画是可配置的,因此您不能只提供自己的行为。但你可以这样包装它:
private class FlingBehaviourMultiplier(
private val multiplier: Float,
private val baseFlingBehavior: FlingBehavior
) : FlingBehavior {
override suspend fun ScrollScope.performFling(initialVelocity: Float): Float {
return with(baseFlingBehavior) {
performFling(initialVelocity * multiplier)
}
}
}
@Composable
fun rememberFlingBehaviorMultiplier(
multiplier: Float,
baseFlingBehavior: FlingBehavior
): FlingBehavior = remember(multiplier, baseFlingBehavior) {
FlingBehaviourMultiplier(multiplier, baseFlingBehavior)
}
Usage:
val pagerState = rememberPagerState()
HorizontalPager(
count = 10,
state = pagerState,
flingBehavior = rememberFlingBehaviorMultiplier(
multiplier = 0.5f,
baseFlingBehavior = PagerDefaults.flingBehavior(pagerState)
),
modifier = Modifier
) { page ->
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)