首页 > 解决方案 > Glide recyclerview 加载重复图像

问题描述

我有一个recyclerview. diffutil我已经使用GlideImageViews.

onBindViewHolder我调用我的函数时,它被称为loadImage(holder.view,item)

override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val item = getItem(position)

    onLoadImage(holder.view, item)
}

在我的 loadImage 中,我将图像加载到视图中。

 private fun loadImage(view: View, item: MyItemModel) {
        Timber.i("load item's image id: ${item.id} image is: ${item.image}")

        Glide.with(context)
                .asDrawable()
                .load(item.image)
                .into(view.main_image)
    }

它工作得很好,但是当它第一次加载图像时,我在列表中滑动,图像显示如下:

在此处输入图像描述

所以图像是重复的,但最后两个图像是不同的。仅当我在加载时快速滑动时才会发生这种情况。日志:

I/MyListAdapter: load image into : 6 image is: [B@25d0674
I/MyListAdapter: load image into : 7 image is: [B@e64ced4
I/MyListAdapter: load image into : 8 image is: [B@b384734

这是自定义视图。上下文就是视图的上下文。

所以图像是不同的。问题是什么?

有什么建议吗?

标签: androidandroid-glide

解决方案


loadImage在您的方法中加载新图像之前尝试清除图像:

view.main_image.setImageBitmap(null)
Glide.with(...)

推荐阅读