Glide加载图片报错You must not call setTag() on a view Glide is targeting

时间:2021-07-30 19:07:20

报错信息为:You must not call setTag() on a view Glide is targeting

原因就是View使用setTag后导致Glide之前请求的标记被清除,强制转换过程中不能将你给定的类型判断为Request类型所致。

在Glide源码中可追溯:

 if (tag instanceof Request) {
request = (Request) tag;
} else {
throw new IllegalArgumentException("You must not call setTag() on a view Glide is targeting");
}

所以你可以在Glide代码执行之后在使用 setTag就不会出现异常了!

***但是这里仍然有个“坑”在Glide代码执行之后使用 setTag会出现不定期无法加载图片,如果我们必须要使用setTag的话请使用setTag(id,val);即可,这里需要添加一个value/ids资源文件;

配置例如:

<resources>
<!--给图片标记索引位置-->
<item name="indexTag" type="id" />
</resources>