You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Compose LazyVerticalStaggeredGrid上滑时项自动重排问题求助

LazyVerticalStaggeredGrid加载GIF向上滚动时项自动重排问题

我实现了一个展示GIF的LazyVerticalStaggeredGrid,使用Coil的AsyncImage加载Giphy的URL资源。GIF可正常异步加载,向下滚动表现正常,但向上滚动时项会自动重排。

网格实现代码

@Composable
fun GifGrid(
    modifier: Modifier = Modifier,
    gifList: List<GiphyItem>
) {
    LazyVerticalStaggeredGrid(
        columns = StaggeredGridCells.Fixed(3),
        modifier = modifier,
        verticalItemSpacing = 12.dp,
        horizontalArrangement = Arrangement.spacedBy(12.dp),
        contentPadding = PaddingValues(vertical = 8.dp),
        content = {
            items(gifList, key = { it.id }) { item ->
                AsyncImage(
                    model = ImageRequest.Builder(LocalContext.current)
                        .data(item.images.downsized.url)
                        .decoderFactory(ImageDecoderDecoder.Factory())
                        .build(),
                    contentDescription = null,
                    modifier = Modifier
                        .clip(RoundedCornerShape(6.dp)),
                    contentScale = ContentScale.Crop
                )
            }
        }
    )
}

问题演示可直观看到向上滚动时项重排的现象。

已尝试的排查步骤

  • 使用LaunchedEffect观察gifList,未发生重组
  • 尝试不同尺寸的GIF,无影响
  • 使用本地drawable和普通图片URL复现,无法重现问题
  • 尝试其他网格视图,仍有相同表现

我了解到XML版本的类似问题修复方案,但不知如何迁移到Compose环境中。


内容的提问来源于stack exchange,提问作者ligaevelina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:28:27