Glide Recyclerview正在加载重复图像

时间:2018-10-08 11:39:13

标签: android android-glide

我有一个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)
    }

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

enter image description here

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

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

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

因此图像不同。 问题是什么?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我知道它来晚了,但希望它能对某人有所帮助。覆盖适配器中的这两种方法。

  @Override
public long getItemId(int position) {
  return position;
}

  @Override
public int getItemViewType(int position) {
 return position;
}

答案 1 :(得分:0)

尝试清除图像,然后再以loadImage方法加载新图像:

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