问题描述
我正在使用 COIL 库将图像从 URL 加载到 ImageView 中,但在实施暗模式时遇到了问题。
在我的应用程序中,我有一个 RecyclerView,其中每个项目都有一个图像。由于加载是异步的,我有一个占位符可绘制,直到加载图像为止。
我使用的扩展函数是这样的:
/**
* Load image with placeholder and crossfade animation
*/
private fun ImageView.loadImageWithPlaceholder(
url: String,onSuccess: (() -> Unit)? = null,onError: (() -> Unit)? = null
) {
load(url) {
placeholder(R.drawable.ic_sheikah_placeholder)
crossfade(Constants.CROSSFADE_DURATION_MILLIS)
listener(onSuccess = { _,_ ->
onSuccess?.invoke()
},onError = { _,_ ->
onError?.invoke()
})
}
}
一切正常,直到我使用 MaterialComponents 主题实现了暗/亮模式。 现在我有两个占位符图像,分别是 drawable-Xdpi 和 drawable-night-Xdpi。
在黑暗模式下,一切都按预期工作。但是在浅色模式下,当我使用 RecyclerView 打开 Activity 或快速滚动时,显示的占位符瞬间是深色模式。在那一刻之后,将显示正确的占位符图像,然后替换为从服务器加载的图像。我曾尝试禁用 COIL 缓存,但似乎没有任何效果,而且我无法找出问题所在。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)