了解毕加索和回收站视图
Understanding picasso & recycler view
我正在尝试了解 picasso 与带有 ImageView 的 recyclerview 的行为方式。
重用ViewHolder picasso加载旧图是否可行。我是说:
mPicasso.load(url1).into(imageView);
mPicasso.load(url2).into(imageView);
将加载哪个图像 url 或 url2?
如何取消图片加载过程?我是说
mPicasso.load(url1).into(imageView); // Start image loading
..
// Image loading not finished, but
// ViewHolder detaches
// Should I remove any pending image loadings here or picasso will do it automatically?
提前致谢!
Well Picasso 是一个很好的图书馆,它本身就解决了很多令人头疼的编程问题。我没有使用过 Picasso ,因为我真的很喜欢使用 glide。
我认为一旦视图被回收,毕加索就会处理它的取消操作。如果不是这样,那么您可以使用所讨论的过程之一轻松完成 here。请试试这个,让我知道这是否适合您
如果您希望在 ViewHolder 分离时取消 ViewHolder 上的 Picasso 请求,那么您可以使用 cancelRequest()
在您的适配器中执行类似的操作。
@Override
public void onViewDetachedFromWindow(ViewHolder holder)
{
super.onViewDetachedFromWindow(holder);
Picasso.with(holder.notificationBannerIV.getContext()).cancelRequest(holder.notificationBannerIV);
}
我正在尝试了解 picasso 与带有 ImageView 的 recyclerview 的行为方式。
重用ViewHolder picasso加载旧图是否可行。我是说:
mPicasso.load(url1).into(imageView);
mPicasso.load(url2).into(imageView);
将加载哪个图像 url 或 url2?
如何取消图片加载过程?我是说
mPicasso.load(url1).into(imageView); // Start image loading
..
// Image loading not finished, but
// ViewHolder detaches
// Should I remove any pending image loadings here or picasso will do it automatically?
提前致谢!
Well Picasso 是一个很好的图书馆,它本身就解决了很多令人头疼的编程问题。我没有使用过 Picasso ,因为我真的很喜欢使用 glide。
我认为一旦视图被回收,毕加索就会处理它的取消操作。如果不是这样,那么您可以使用所讨论的过程之一轻松完成 here。请试试这个,让我知道这是否适合您
如果您希望在 ViewHolder 分离时取消 ViewHolder 上的 Picasso 请求,那么您可以使用 cancelRequest()
在您的适配器中执行类似的操作。
@Override
public void onViewDetachedFromWindow(ViewHolder holder)
{
super.onViewDetachedFromWindow(holder);
Picasso.with(holder.notificationBannerIV.getContext()).cancelRequest(holder.notificationBannerIV);
}