毕加索不容忍空的字符串网址?

我有一个使用毕加索加载图像的viewHolder。 数据库将返回一个URL的路径作为字符串。 所以我有我的代码如下(使用Kotlin)

Picasso.with(context).load(url).error(placeholder).transform(transformation) .placeholder(placeholder).into(this) 

它加载罚款。 但是,有时URL是空的。 我期待它加载占位符。 但是,如下所示

 java.lang.IllegalArgumentException: Path must not be empty. at com.squareup.picasso.Picasso.load(Picasso.java:297) 

这会迫使我明确地做一个检查,这是不理想的

 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) } 

这是否预期毕加索将会在URL字符串为空而不是加载占位符时崩溃?

Picasso.load()的javadoc明确指出,当URL为null或空时,它将抛出IllegalArgumentException。 所以这就是你所期待的。

我希望能帮到你

 if (item.getImagen().isEmpty()) { //url.isEmpty() Picasso.with(mContext) .load(R.drawable.placeholder) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) .into(holder.imageView); }else{ Picasso.with(mContext) .load(item.getImagen()) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) .into(holder.imageView); //this is your ImageView } 

我建议你在加载到毕加索之前检查字符串。

 public static boolean isBlank(String string) { return TextUtils.isEmpty(string.trim()); }