GithubHelp home page GithubHelp logo

Comments (12)

AlexanderEggers avatar AlexanderEggers commented on April 17, 2024 1

@xiphirx I have the same problem. When I call stopShimmer on my given ShimmerFrameLayout, the shimmer animation is not stopping. Internally it is calling the value animator cancel method, but it is still not stopping the animation.

The library seems to have a problem with the internal state of the ShimmerFrameLayout because it actually does not matter if I call startShimmer/stopShimmer on the view. The animation will always be executed. I tested this by simply creating a new project and including the relevant ShimmerFrameLayout without calling any methods.

Here is a snippet of my code:

@JvmStatic
@BindingAdapter("image")
fun setImage(view: ImageView, imageUrl: String?) {
            imageUrl?.run {
                (view.parent as? ShimmerFrameLayout)?.startShimmer()

                var requestOptions = RequestOptions()
                requestOptions = requestOptions.transforms(CenterCrop(), RoundedCorners(2))

                GlideApp.with(view)
                        .load(imageUrl)
                        .centerCrop()
                        .placeholder(R.drawable.preview_panel_loading_image)
                        .apply(requestOptions)
                        .listener(object: RequestListener<Drawable> {

                            override fun onResourceReady(resource: Drawable?, model: Any?, target: Target<Drawable>?, dataSource: DataSource?, isFirstResource: Boolean): Boolean {
                                (view.parent as? ShimmerFrameLayout)?.stopShimmer()
                                return false
                            }

                            override fun onLoadFailed(e: GlideException?, model: Any?, target: Target<Drawable>?, isFirstResource: Boolean): Boolean {
                                (view.parent as? ShimmerFrameLayout)?.stopShimmer()
                                return false
                            }
                        })
                        .into(view)
            }
        }

from shimmer-android.

AlexanderEggers avatar AlexanderEggers commented on April 17, 2024 1

I just found out that the library is using custom layout parameter for the ShimmerFrameLayout. After setting the value, I was able to disable the auto start behaviour and use the methods instead. You should update the documentation to include this behaviour. Currently that is something that wasn't clear to me at the beginning. I expected that auto_start is false by default (especially due to your example that showed "how to start the shimmer animation".

Regarding the ShimmerDrawable, how I can I use that as a placeholder inside glide. I cannot find any reference to this drawable.

from shimmer-android.

xiphirx avatar xiphirx commented on April 17, 2024

I just tested this in the sample app and the library is functioning correctly. Please attach a project reproducing the error.

from shimmer-android.

xiphirx avatar xiphirx commented on April 17, 2024

It starts automatically when not calling anything because auto start is true by default. Can you verify that view.parent is actually a ShimmerFrameLayout? I cannot reproduce the same behavior in the sample app. You may also want to just use ShimmerDrawable directly as Glide's placeholder since its an ImageView.

from shimmer-android.

xiphirx avatar xiphirx commented on April 17, 2024

You can use ShimmerDrawable like any other drawable and set the same Shimmer object on it. In fact, ShimmerFrameLayout is just a thin wrapper that just delegates to ShimmerDrawable.

I'd imagine you could do something like

Shimmer shimmer = Shimmer...;
ShimmerDrawable d = new ShimmerDrawable();
d.setShimmer(shimmer);

GlideApp.with(view).load(imageUrl).placeholder(d)...

I'll look into updating the docs to be clear-er, thanks.

from shimmer-android.

AlexanderEggers avatar AlexanderEggers commented on April 17, 2024

@xiphirx Thanks for your answer. As I wrote in my last reply, there's no available reference to ShimmerDrawable in the library (at least Android Studio cannot find this class). Are you certain that the version 0.2 is including this object?

from shimmer-android.

xiphirx avatar xiphirx commented on April 17, 2024

Oh sorry, it's going to be in the next version. I should probably cut a new release soon

from shimmer-android.

AlexanderEggers avatar AlexanderEggers commented on April 17, 2024

@xiphirx When are you planning to do that? Sometime next week or later?

from shimmer-android.

ugokoli avatar ugokoli commented on April 17, 2024

Yes please, I am also waiting for the next version soon, I hope it will address all these problems. Thanks

from shimmer-android.

xiphirx avatar xiphirx commented on April 17, 2024

bdfacea

from shimmer-android.

AlexanderEggers avatar AlexanderEggers commented on April 17, 2024

@xiphirx Thanks for the new version! :)

from shimmer-android.

i-m-aman avatar i-m-aman commented on April 17, 2024

How to make the ShimmerDrawable rounded? I cannot change the color of the shimmer drawable.

from shimmer-android.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.