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

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

 

posted @ 2016-12-05 20:07  soft.push("zzq")  Views(4961)  Comments(0)    收藏  举报