Glide recyclerview загрузка дублированного изображения - PullRequest
0 голосов
/ 08 октября 2018

У меня есть recyclerview с diffutil.Я уже использую Glide для загрузки изображений внутри ImageViews.

на 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 голосов
/ 08 октября 2018

Попробуйте очистить изображение перед загрузкой нового в вашем loadImage методе:

view.main_image.setImageBitmap(null)
Glide.with(...)
0 голосов
/ 08 октября 2018

Я знаю, что уже поздно, но надеюсь, что это кому-нибудь поможет.Переопределите эти два метода в вашем адаптере.

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

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