2013-03-13 111 views
5

我有一个关于Android AnimatorSet对象的问题。我试图动态创建一个TextView,并将其设置为GONE的可见性,并在启动延迟后启动动画时显示。为了做到这一点,我设置了一个onAnimationStart侦听器来告诉我动画何时开始,以便我可以将TextView设置为可见。我将该TextView添加到AnimatorSet中,以在alpha和translateY上执行一些动画,但我也将setStartDelay设置为一个值,以便动画在2500毫秒时开始。我的问题是我希望TextView在动画实际以2500毫米标记开始时变为可见,但onAnimationStart仅在调用AnimatorSet.start()函数时被调用,而不是所请求的2500毫秒后被调用。这导致我的TextView在其动画实际启动之前变得可见(在setStartDelay时段之后)。我如何克服这一点,让TextView对象只有在setStartDelay周期后才可见?非常感谢你,你是最好的StackOverflow! :) :) :)Android AnimatorSet动画+ setStartDelay VS AnimatorListenener.onAnimationStart?

回答

2

我一直有同样的问题。我在AnimatorSet中设置了3个ValueAnimators动画。我在我的组做一个“playTogether()”,例如:

set.playTogether(alpha,animScale,transY); 
set.start(); 

,发现动画延迟造成的问题。相反,我尝试以下:

set.play(animScale); 
set.play(transY); 
set.play(alpha); 
set.start(); 

它似乎工作!