我有一个产品单元格,希望在列表中显示。我使用了LazyColumn,但是性能非常差,我找不到原因。然后我将LazyColumn切换为Column,滚动突然变得非常顺畅。
使用的LazyColumn版本:
LazyColumn() {
items(cartItems, key = {it.cartItem.id}) { cartItemData ->
CartItemWithActions(data = cartItemData)
Divider(color = colorResource(id = R.color.separator_line))
}
}
列版本
val state = rememberScrollState()
Column(modifier = Modifier.verticalScroll(state)) {
cartItems.forEach { cartItemData ->
CartItemWithActions(data = cartItemData)
Divider(color = colorResource(id = R.color.separator_line))
}
}
CartItemWithActions是我的产品单元格,其中包含我使用glide加载的图像和几个文本
适用于LazyColumn版本的HWUI
适用于Column的HWUI
有人能提供提示吗,为什么LazyColumn比Column慢?
更新
看起来当按照这种方式设置LazyColumn时,LazyColumn滚动得更好
LazyColumn() {
items(
count = cartItems.size,
key = {
cartItems[it].cartItem.id
},
itemContent = { index ->
val cartItemData = cartItems[index]
CartItemWithActions(data = cartItemData)
Divider(
color = colorResource(id =R.color.separator_line)
)
}
)
}
Text
,不会出现这种情况,但是对于定制化较强的组合部件,我也觉得这是一个问题。 - Richard Onslow Roper