Вот моя реализация сетки:
Код: Выделить всё
@Composable
fun GifGrid(
modifier: Modifier = Modifier,
gifList: List
) {
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
)
}
}
)
}
Чтобы диагностировать проблему, я попробовал несколько способов:
- Попробовал просмотреть gifList с помощью LaunchedEffect. Никаких рекомпозиций не произошло.
- Пробывал GIF-файлы разных размеров. Это не дало эффекта.
- Пытался воспроизвести ошибку с изображениями из рисунков и URL-адреса. Не удалось воспроизвести ошибку.
- Проверил другие виды сетки. Поведение такое же.
Подробнее здесь: https://stackoverflow.com/questions/772 ... rolling-up