報錯信息為: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>