报错信息为: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>