android - LazyColumn 比垂直滚动的 Column 慢
问题描述
我有要在列表中显示的产品单元格,我使用了 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
柱的 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)
)
}
)
}
解决方案
似乎以这种方式初始化 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)
)
}
)
}
但是我还是不知道为什么
推荐阅读
- java - 带有 JDBC 连接的基本 Swing GUI,使用来自查询的信息填充标签
- django - 如何扩展 TextField 以包含样式和自定义功能?
- database - 在 AWS RDS 中使用 MySQL 服务器进行实时监听
- pine-script - 有没有办法在 pine 脚本函数中返回 input.resolution 类型值?
- java - Firebase addChildEventListener 在 ListView android studio 中不起作用
- python - 如何从python中的随机数创建非奇异对称矩阵?
- python - Python Selenium 找不到 XPath
- python - 为什么这不在python中打印?
- sql - sql根据属性保留第一行
- imagemagick - 管道图像流到识别命令