Skip to content Skip to sidebar Skip to footer

Animation Not Starting Until Ui Updates Or Touch Event

I have a strange problem with an AlphaAnimation. It is supposed to run repeatedly when an AsyncTask handler is called. However, the first time the handler is called in the Activity

Solution 1:

A little more research showed that my problem was the same a this question: Layout animation not working on first run

The flashView's visibility was set to GONE by default (causing the Animation not to start immediately as the View had never been rendered), so I just need to set it to INVISIBLE before calling flashView.startAnimation()

Solution 2:

If setting the View to VISIBLE won't work, as was in my case, it helped for me to call requestLayout() before starting the Animation, like so:

Animationan=newAnimation() {
...   
view.requestLayout();
view.startAnimation(an);

In my case, my View was 0dip high which prevented onAnimationStart from being called, this helped me around that problem.

Solution 3:

This worked for me:

view.setVisibility(View.VISIBLE);
view.startAnimation(animation);

I had to set the view to VISIBLE (not INVISIBLE, neither GONE), causing the view renderization needed to animate it.

Solution 4:

That's not an easy one. Till you got a real answer : The animation start is triggered by onNetworkEvent. As we don't know the rest of the code, you should look there, try to change onNetworkEvent by an other event that you can easily identify, just to debug if the rest of the code is ok or if it's just the trigger that is responsible for it.

Solution 5:

May be it will help someone, because previous answers not helped me.

My animation was changing height of view (from 0 to it's real height and back) on click - expand and collapse animations.

Nothing worked until i added listener and set visibility to GONE, when animation ends:

collapseAnim.setAnimationListener(newAnimation.AnimationListener() {
        @OverridepublicvoidonAnimationStart(Animation animation) {

        }

        @OverridepublicvoidonAnimationEnd(Animation animation) {
            view.setVisibility(View.GONE);
        }

        @OverridepublicvoidonAnimationRepeat(Animation animation) {

        }
    });

And when expand just set it to VISIBLE before animation:

 view.setVisibility(View.VISIBLE);
 view.startAnimation(expandAnim);

Post a Comment for "Animation Not Starting Until Ui Updates Or Touch Event"