Элементы в Compose StaggeredGrid перестраиваются при прокрутке вверх.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Элементы в Compose StaggeredGrid перестраиваются при прокрутке вверх.

Сообщение Anonymous »

Я реализовал LazyVerticalStaggeredGrid, который показывает GIF-файлы. GIF-файлы отображаются с использованием AsyncImage из Coil с использованием URL-адреса из Giphy. Элементы асинхронно загружаются в сетку без проблем. Прокрутка вниз работает так, как и ожидалось, однако прокрутка вверх приводит к перестановке элементов.
Вот моя реализация сетки:

Код: Выделить всё

@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-адреса. Не удалось воспроизвести ошибку.
  • Проверил другие виды сетки. Поведение такое же.
Я также видел некоторые реализации для исправления подобной ошибки в XML, но не знаю, как перенести это в Compose.< /п>

Подробнее здесь: https://stackoverflow.com/questions/772 ... rolling-up
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»