У меня есть ячейка продукта, которую я хочу отобразить в списке. Я использовал 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 и пары текстов.
[img]https://i .sstatic.net/eRt9D.png[/img]
HWUI для версии LazyColumn
[img]https:/ /i.sstatic.net/c2LwX.png[/img]
HWUI для столбца
[img]https: //i.sstatic.net/CSl8c.png[/img]
Может ли кто-нибудь подсказать, почему 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)
)
}
)
}
Подробнее здесь: https://stackoverflow.com/questions/698 ... cal-scroll