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
相关产品推荐
相关产品推荐

