是否有办法从Lazyrow获得滚动状态



我已经做了一个LazyRow,我现在希望能够从中获得滚动位置。我所理解的scrolllablerow已被弃用。(纠正我,如果我错了)的事情是,我不能做一个scrolllablerow,所以我想让我们做一个懒惰的。但是我不知道如何从懒惰中获得滚动位置。我知道如何获取索引,但不知道位置,如果有的话。这是我试过的。

val scrollState = rememberScrollState()
LazyRow(scrollState = scrollstate){
}

对于Lazy滚动条,存在单独的Lazy状态。

我想实际上只有一个,即rememberLazyListState()

将其作为滚动状态传递给行,然后您可以访问各种信息。例如,您可以获得第一个可见项的索引及其偏移量。在上述初始化返回的对象中,有这些东西的直接属性。您还可以使用您获得的lazyListState.layoutInfo属性执行一些更复杂的操作。

同样,ScrollableRow可能被弃用为@Composable,但它只是重构了一点。现在,您可以使用horozontalScroll()verticalScroll()修饰符,它们都接受一个scrollState参数,该参数期望与您在问题中创建的对象相同。

通常,你会使用Lazy滚动条,因为它们并不难实现,而且性能也很好,但一般的想法是它们用于大型数据集,而非惰性滚动条适用于小型列表和东西。这是因为懒惰的只缓存整个列表的一小部分,使您的UI性能,这不是常规滚轮做的事情,而不是小数据集的问题。

它们就像View系统中的RecyclerView的等价物

最新更新