vitorhugods / AvatarView

A circular Image View with a lot of perks. Including progress animation and highlight state with borders and gradient color.
Apache License 2.0
549 stars 39 forks source link

Use avatarview in recyclerview #5

Closed frfmmdreza closed 5 years ago

frfmmdreza commented 5 years ago

Hi, actually i don't want to report an issue, i want some help if it is possible for you. Im using avatarview in a recyclerviee. When user click on avatar i get some data from the server, i do this in my activity (not adapter), now the problem is that how can i stop avatar animation when i get the data? Because i get data inside my activity and i cant stop avatar animation from activity. Thank you

vitorhugods commented 5 years ago

Ok.

That's an implementation issue, mostly related to the application architecture. I'll try to help nevertheless.

You have a few options.

One of them, the most simple, probably (I didn't see a single piece of your code): The activity calls:

//When the loading starts
item.isLoading = true
adapter.notifyItemChanged(itemIndex)
startLoading()

//When the loading is complete
item.isLoading = false
adapter.notifyItemChanged(itemIndex)

And in your ViewHolder, to manage such information.

public fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
        val item = data[position]
        holder.avatarView.isAnimating = item.isLoading
}

I don't think that the Activity should be the one responsible for the connection in the first place. Maybe you should learn a bit more about architecture patterns, such as MVVM.