Android Coil 3 extend ImageRequest's custom method/function,Kotlin(2)
在Android中使用Coil 3图片加载库时,通过扩展ImageRequest实现自定义超时功能的方法。相比之前不够简明的实现方式,现在通过在ImageRequestExt.kt文件中定义扩展函数和属性,可以更优雅地添加超时设置。具体实现包括:定义timeoutKey作为扩展键,为ImageRequest.Builder添加timeout()扩展方法,以及为ImageRequest添加timeout属性。这种扩展方式使得上层应用可以链式调用.timeout()方法来设置图片加载超时时间。
https://zhangphil.blog.csdn.net/article/details/161090239
现在用新的方式实现,新建一个代码文件,假设叫ImageRequestExt.kt,在里面写入:
Kotlin
import coil3.Extras
import coil3.getExtra
import coil3.request.ImageRequest
private val timeoutKey = Extras.Key(default = Long.MAX_VALUE)
fun ImageRequest.Builder.timeout(timeout: Long) = apply {
extras[timeoutKey] = timeout
}
val ImageRequest.timeout: Long
get() = getExtra(timeoutKey)
这样就可以在上层应用中构造ImageRequuest时候通过 .timeout()使用了。