【发布时间】:2021-12-02 06:37:40
【问题描述】:
我在 jetpack compose 中使用线圈填充我的图像,我面临的问题是我无法以编程方式识别 url 是否不再有效。
val imageUrl = "www.someinvalidurl.com"
val painter = rememberImagePainter(
data = imageUrl
)
Image(
painter = painter
)
该网址以前有效,但不再有效。线圈显示默认占位符 url,但我想识别此失败并尝试从不同的 url 获取图像。这个我试过了,
if (painter.state is ImagePainter.State.Error) {
//failed so try to get an image from a different url
}
但是这样做的问题是,即使是有效的 url,也会调用这个块。
我正在使用以下版本的线圈:
implementation("io.coil-kt:coil-compose:1.4.0")
在使用 jetpack compose 时是否有不同的正确方法来识别线圈中的无效 URL
【问题讨论】:
-
这是检测错误的正确方法,在我的情况下,它不需要有效的 URL。如果是
ImagePainter.State.Error,则不会显示图像。但错误可能不仅仅是因为 URL 无效,例如您的连接可能较弱。请提供一个对你失败的 URL 并包含国家提供的错误描述,你可以添加一个日志来查看它。 -
我也这么认为,但我不确定这是否是一个错误,但对于我的代码,这不起作用。下面接受的答案解决了我的问题...
-
至少检查一下错误描述。提出的解决方案不是很干净
-
@PhilipDukhov 我通过引用响应代码而不是消息来清理代码。
标签: android-jetpack-compose coil