Check if AnimatorSet has finished animation?

android, animation, objectanimator

Solution

You can set an AnimatorListener on fadeinAnimation5. This will give you an onAnimationEnd callback.

fadeinAnimation5.addListener(new AnimatorListener() {

            @Override
            public void onAnimationStart(Animator animation) {
                // ...
            }

            @Override
            public void onAnimationRepeat(Animator animation) {
                // ...
            }

            @Override
            public void onAnimationEnd(Animator animation) {
                // ...
            }

            @Override
            public void onAnimationCancel(Animator animation) {
                // ...
            }
        });

Or, as suggested by slott use an AnimatorListenerAdapter

fadeinAnimation5.addListener(new AnimatorListenerAdapter() {

    @Override
    public void onAnimationEnd(Animator animation) {
        // ...
    }
}

Problem

I'm trying to animate buttons with fade in animation using `AnimatorSet` `Button fades in > Click button > Remaining buttons fade out` So in order to do this, I want to set the `onClickListner after the animation is completed`, but that doesn't seem to work. Clicking a button in the middle of the animation `triggers the onClick action`: ``` setQuestion = new AnimatorSet(); setQuestion.playSequentially(fadeinAnimationQ,fadeinAnimation1,fadeinAnimation2,fadeinAnimation3,fadeinAnimation4,fadeinAnimation5); setQuestion.start(); ``` This is the method that checks `if the animation has finished`. ``` private void checkAnimation() { while (true) { // Check if animation has ended if (setQuestion.isRunning() == false) { assignListners(); break; } } } ```

Original source

Related problems