我有一个使用毕加索加载图像的 viewHolder。DB 将返回一个 URL 路径作为字符串。所以我的代码如下(使用 Kotlin)
Picasso.with(context).load(url).error(placeholder).transform(transformation)
.placeholder(placeholder).into(this)
Run Code Online (Sandbox Code Playgroud)
它加载良好。但是,有时 URL 为空。我期待它加载占位符。但它崩溃如下
java.lang.IllegalArgumentException: Path must not be empty.
at com.squareup.picasso.Picasso.load(Picasso.java:297)
Run Code Online (Sandbox Code Playgroud)
这将迫使我明确进行检查,这并不理想
if (url == null || url.isEmpty()) {
Picasso.with(context).load(placeholder).transform(transformation).into(this)
} else {
Picasso.with(context).load(url).error(placeholder).transform(transformation)
.placeholder(placeholder).into(this)
}
Run Code Online (Sandbox Code Playgroud)
当 URL 字符串为空而不是加载占位符时,这是否会导致毕加索崩溃?
这可能已经太晚了,但我今天遇到了这个错误,在阅读了Picasso#load方法的文档后,它指出传递空或空白字符串将导致该方法抛出IllegalArgumentException,传递 null 不会引发异常,但会触发RequestCreator# error如果提供了错误图像,则将加载错误图像,否则目标将不显示任何内容。
如果您无法控制图像网址(假设它来自服务器),您可以尝试以下操作:
mPicasso.load(photo.isEmpty() ? null : photo)
.placeholder(placeholder)
.error(error_placeholder)
.into(target);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7235 次 |
| 最近记录: |