Android Coil загружает старое изображение слишком рано при загрузке нового изображения ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Android Coil загружает старое изображение слишком рано при загрузке нового изображения

Сообщение Anonymous »

Итак, у меня есть изображение, которое показано, и поверх этого изображения я загружаю другое изображение, например:

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

 AsyncImage(
modifier = modifier,
model = modelBuilder(
ImageRequest.Builder(LocalContext.current)
.data(image.url)
.loadWitchCache(image.url)
.let {
if (placeholder != null) {
it.fallback(placeholder).error(placeholder)
} else {
it
}
},
image.url,
).build(),
contentDescription = contentDescription,
alignment = alignment,
contentScale = contentScale,
)

fun ImageRequest.Builder.loadWitchCache(url: String): ImageRequest.Builder {
return this.diskCachePolicy(CachePolicy.ENABLED)
.diskCacheKey(url)
.memoryCachePolicy(CachePolicy.ENABLED)
.memoryCacheKey(url)
Проблема в том, что в приложении есть список изображений, которые пользователь может выбрать. Когда он выбирает изображение, оно рисуется. Проблема в том, что когда я выбираю новое изображение, происходит переход, при котором я не вижу ни старого, ни нового изображения. Я вижу изображение, которое является заполнителем под этим. Что интересно, когда пользователь выбирает одно и то же изображение второй или третий раз, этой задержки перехода нет, и все, что мы видим, это старое изображение и сразу же новое при загрузке.
Это приводит нас к выводу, что когда изображение кэшируется, оно берет его из кеша, и этой задержки нет. Но почему мы не можем сказать Coil, чтобы он делал это в любом случае и удалял старое изображение только тогда, когда загружается новое...
Я много чего пробовал, но ничего не помогало. Это должно быть каким-то образом.
Кто-нибудь знает, как это решить? Заранее спасибо...

Подробнее здесь: https://stackoverflow.com/questions/792 ... -new-image

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