場景描述:
Recyclerview中加載圖檔, 但是有一部分圖檔伺服器上面沒有, 這時候快速滑動RecyclerView的時候, 如果正好上一次圖檔是拿不到的情況, 過後才傳回error, 這時候error就會覆寫目前的圖檔, 導緻錯亂。具體代碼如下:
if (imageResourceID == -1) {
Glide.with(activity)
.load(imageUrl)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(R.drawable.icon_load_error_pow_coin)
.into(imageView);
} else {
coinImageIcon.setImageResource(imageResourceID);
}
先在程式中查找了一下有沒有需要展示的圖檔, 沒有的話再去網絡加載, 這時候就很容易發生上述的問題了。
解決方式如下, 其實就是把else裡面替換成:
Glide.with(activity)
.load(resourceId)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.error(R.drawable.icon_load_error_pow_coin)
.into(imageView);
猜想可能是Glide裡面做了setTag()處理吧... , 希望大牛能給解答下為啥...