[英]Jetpack Compose LazyVerticalGrid stuttering
我正在遷移我的應用程序,對於網格視圖,我使用了 LazyVerticalGrid,它使用 coilPainter 加載圖像,但滾動時斷斷續續很多,而且感覺滯后。 有沒有人對此有解決方案或更好的實現?
val photos: List<Photo>? by photosViewModel.photosLiveData.observeAsState(null)
Surface(modifier = Modifier.fillMaxSize()) {
Box(
modifier = Modifier.fillMaxSize()
) {
LazyVerticalGrid(
cells = GridCells.Fixed(3)
) {
photos?.let { photosList ->
items(photosList) { photo ->
Image(
modifier = Modifier.padding(2.dp).clickable {
photosViewModel.onPhotoClicked(photo)
},
painter = rememberCoilPainter(photo.url),
contentDescription = stringResource(R.string.cd_details_photo),
contentScale = ContentScale.Fit,
alignment = Alignment.Center,
)
}
}
}
}
}
更新
試圖移動rememberCoilPainter
以上Image
等val painter = rememberCoilPainter(photo.url)
並使用painter
內的Image
沒有工作
items
需要一個額外的參數key
,將此參數分配給一個唯一值,例如列表中每張照片的索引,如果您不知道這與滾動卡頓有什么關系? 或者我到底在說什么? 查看以下文檔以獲取詳細說明:
https://developer.android.com/jetpack/compose/lifecycle#add-info-smart-recomposition
將我的 compose 圖像加載庫更新為線圈組合后,我被迫將大小設置為請求構建器或圖像本身。 卡頓的問題是因為允許照片加載原始尺寸,因此重新構圖進行了多次,加載圖像必須等待圖片加載。 通過將 e固定高度設置為 Image 解決了該問題,因為創建了 Images() 並且僅對內部圖片進行了重新組合,而不是針對具有不同高度的 Image 本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.