[英]LazyColumn to not recompose some items
使用RecyclerView
,我可以使某些ViewHolder
不可回收(按照我希望我的 RecyclerView 不回收某些項目中的一些答案)。
我可以讓LazyColumn
不重新組合某些項目(類似於讓RecyclerView
不回收某些ViewHolder
)嗎? 我在LazyColumn
中有一些帶有一些大圖像的項目,它在向下和向上滾動后重新組合,因此滾動不流暢。
我遇到了同樣的問題,並使用 Column 來代替修飾符垂直滾動。 如果您不希望它回收視圖,只需加載所有(少數項目)
Column(
modifier = Modifier
.constrainAs(listView) {
top.linkTo(
parent.top
)
}
.fillMaxSize()
.verticalScroll(rememberScrollState())
) {
list.forEachIndexed { index, itemModel ->
ItemView(itemModel, index) {
// on item click
}
}
Spacer(modifier = Modifier.height(40.dp))
}
我有一個類似的問題,一個可組合的大量操作位圖,然后在 canvas 上繪制它們。 您注意到上下滾動lazyColumn 時的處理。
為了解決這個問題,將我操作的位圖存儲在List<ImageBitmap>
作為rememberSaveable
val rememberFruits by rememberSaveable(images) {
mutableStateOf(doBitmapOperations(images))
}
Canvas(
modifier = Modifier
.fillMaxWidth()
.height(height)
.constrainAs(circle) {}
) {
rememberFruits
.forEach { createScaledImageBitmap ->
val (image, offset) = createScaledImageBitmap
drawImage(
image = image,
topLeft = offset
)
}
}
我在lazyColumn 中的項目仍然重新組合,但是在滾動時不再執行繁重的 bitmap 操作,並使上下滾動平滑。
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.