gpt4 book ai didi

android - 如何检索 LazyRow 的滚动方向

转载 作者:行者123 更新时间:2023-12-04 23:40:21 34 4
gpt4 key购买 nike

对于 LazyRow , 或 Column ,我如何知道用户是否向左或向右滚动(或向上或......你知道)。我们不需要 compose 中的回调来处理这样的事情,因为 mutableStateOf无论如何,对象总是会触发重组,所以我只想知道一种将其存储在变量中的方法。好的,这里有 lazyRowState.firstVisibleItemScrollOffset ,可以用某种方式来测量它,但是我找不到方法先存储它的值,然后减去当前值以检索方向(基于正或负变化)。关于如何做到这一点的任何想法,谢谢

最佳答案

目前 ( 1.0.x ) 没有内置函数可以从 LazyListState 获取此信息.
你可以使用类似的东西:

@Composable
private fun LazyListState.isScrollingUp(): Boolean {
var previousIndex by remember(this) { mutableStateOf(firstVisibleItemIndex) }
var previousScrollOffset by remember(this) { mutableStateOf(firstVisibleItemScrollOffset) }
return remember(this) {
derivedStateOf {
if (previousIndex != firstVisibleItemIndex) {
previousIndex > firstVisibleItemIndex
} else {
previousScrollOffset >= firstVisibleItemScrollOffset
}.also {
previousIndex = firstVisibleItemIndex
previousScrollOffset = firstVisibleItemScrollOffset
}
}
}.value
}
然后只需使用 listState.isScrollingUp()获取有关卷轴的信息。
此 fragment 用于谷歌 codelab .

关于android - 如何检索 LazyRow 的滚动方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68727859/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com