[英]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.