Android glide Glide版本4,Glide.clear(图像视图)不再存在
在recyclerView的适配器中,当调用OnBindViewHolder()并为此位置传入回收器池中的viewHolder时,imageView将使用此位置的图像更新,或者此位置根本没有图像 对于此位置没有图像的情况,使用Glide版本3,调用此Android glide Glide版本4,Glide.clear(图像视图)不再存在,android-glide,Android Glide,在recyclerView的适配器中,当调用OnBindViewHolder()并为此位置传入回收器池中的viewHolder时,imageView将使用此位置的图像更新,或者此位置根本没有图像 对于此位置没有图像的情况,使用Glide版本3,调用此clear()以清除图像视图: Glide.clear(this.theImageView) 但当升级到Glide 9时,它不再具有此清除(ImageView) 使用Glide 9清除ImageView图像的正确方法是什么 更新:解决方案 fun
clear()
以清除图像视图:
Glide.clear(this.theImageView)
但当升级到Glide 9时,它不再具有此清除(ImageView)
使用Glide 9清除ImageView图像的正确方法是什么
更新:解决方案
fun ImageView.clear() {
Glide.with(this.context).clear(this)
}
不起作用,请参见Glide的评论:
<p> Note that this will only work if {@link View#setTag(Object)} is not called on this view outside of Glide. </p>
注意,只有在Glide之外的这个视图上没有调用{@link View#setTag(Object)}时,这才有效
/**
*取消Glide对视图可能具有的任何挂起的加载,并释放可能已加载的任何资源
*为视图加载。
*
*请注意,只有在未在此视图上调用{@link View#setTag(Object)}时,这才有效
*在滑翔之外
*
*@param查看取消加载和释放资源的视图。
*@如果将Glide元数据以外的对象作为视图的元数据放置,则会引发IllegalArgumentException
*标签。
*@see#清除(目标)
*/
公共无效清除(@NonNull视图){
清除(新的清除目标(视图));
}
找到了解决方案,添加kotlin扩展解决了问题:
fun ImageView.clear() {
Glide.with(this.context).clear(this)
}
对于java
Glide.with(context).clear(imageView);
我尝试了这一点,但出现了以下错误:您不能在视图上调用setTag(),Glide is targetingies,请参阅在该imagView上调用setTag()时,解决方案是什么<代码>要使Glide正常工作,Glide必须是唯一调用{@link*View#setTag(Object)}的东西。如果清除标记或将其放入另一个对象类型,Glide将无法*检索和取消以前的加载,这不仅会阻止Glide重用*代码>那么你找到解决方案了吗?
Glide.with(context).clear(imageView);