簡體   English   中英

Jetpack Compose LazyVerticalGrid 口吃

[英]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以上Imageval 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM