繁体   English   中英

滚动列表期间项目重组

[英]Items recompose during scrolling list

在我的屏幕上,我有MyTopItem()和下面的项目列表。 当我开始滚动列表时,我想隐藏MyTopItem()

它工作正常,但滚动是如此滞后。 发生这种情况是因为在滚动MyLazyVerticalGridItemsSection()中的所有项目时重新组合。

如何避免在滚动期间重新组合?

Column(Modifier.fillMaxSize()) {
    val listState = rememberLazyListState()

    AnimatedVisibility(
        visible = listState.firstVisibleItemScrollOffset < 1,
        enter = expandVertically(),
        exit = shrinkVertically()
    ) {
        MyTopItem()
    }
    MyLazyVerticalGridItemsSection(
        items = myItems,
        listState = listState
    )
}

发生这种情况是因为您直接使用listState.firstVisibleItemScrollOffset ,因此每次此值更改时,都会触发重组。

在这种情况下,应该使用derivedStateOf - 它只会在计算结果发生变化时触发重组::

val visible by derivedStateOf { listState.firstVisibleItemScrollOffset < 1 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM