Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrong image on recyclerview #107

Closed
SmasSive opened this issue Aug 9, 2018 · 5 comments
Closed

Wrong image on recyclerview #107

SmasSive opened this issue Aug 9, 2018 · 5 comments

Comments

@SmasSive
Copy link
Contributor

SmasSive commented Aug 9, 2018

Hi!
First of all thanks for this great lib! 👍

I'm using BIV like a gallery, in a recyclerview with a viewpager behaviour and the viewholder is basically a BigImageView, the question is that when I'm paginating there is a page that shows a previous image while progress is shown and once the right image is ready, it is shown correctly.

What I expect is that while the image is downloading, no previous image is shown but only the progress.

I've tried to do a cancel() in the onViewRecycled method of the adapter but with no success... I've read also that another solution could be to do a setImageDrawable(null) but AFAIK I don't have access to the ImageView right?

What can I do? If you need more info please ask me!
Thanks a lot!!!

@SmasSive
Copy link
Contributor Author

SmasSive commented Aug 9, 2018

I've managed this by doing the following:

  • On onViewRecycled method from adapter I call a holder method named clear()
  • That holder.clear() is a method that gets the SubsamplingScaleImageView and then calls to recycle()

Adapter

  override fun onViewRecycled(holder: GlideGalleryViewHolder) {
    holder.clear()
  }

ViewHolder

  fun clear() {
    itemView.itemImage.ssiv.recycle()
  }

But I don't know if it's a good practice or it's ok. Could you please give me your opinion? Thanks!

@Piasy
Copy link
Owner

Piasy commented Aug 9, 2018

I think that's a good way to solve this problem.

@Piasy
Copy link
Owner

Piasy commented Aug 10, 2018

@SmasSive I think calling ssiv.recycle() at onBindViewHolder is another option.

@Piasy Piasy closed this as completed Aug 10, 2018
@batadamnjanovic
Copy link

batadamnjanovic commented Aug 14, 2023

Did anyone managed to recycle() a ssiv in RecyclerView with ViewPager successfully?

Calling ssiv.recycle() does not work as expected.

@batadamnjanovic
Copy link

batadamnjanovic commented Aug 15, 2023

I was managed to make it work by hiding a BigImageView in onBindViewHolder and to show it when onMainImageShown callback is triggered.
ssiv.recycle() didn't work for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants