Android AnimatorSet动画+setStartDelay与AnimatorListener.onAnimationStart有什么区别?

6
我有一个关于Android AnimatorSet对象的问题。我正在动态创建一个TextView并将其可见性设置为GONE,希望在动画开始后的启动延迟后使其出现。为此,我设置了一个onAnimationStart监听器来告诉我动画何时开始,以便我可以将TextView设置为可见。然后我将该TextView添加到AnimatorSet中,以执行一些对alpha和translateY的动画,但我还将setStartDelay设置为2500毫秒,以便动画从2500毫秒开始。我的问题是当动画实际上在2500毫秒的标记处开始时,我希望TextView变为可见,但是onAnimationStart仅在AnimatorSet.start()函数被调用时被调用,而不是请求的2500毫秒之后。这导致我的TextView在它们的动画实际开始之前(在setStartDelay期间之后)就变得可见了。我该如何解决这个问题,让TextView对象只在setStartDelay期结束后才变为可见?非常感谢,您是最好的StackOverflow!!!:) :) :)
1个回答

2

我一直遇到同样的问题。我正在使用AnimatorSet中的3个ValueAnimators进行动画处理。我在我的set中使用了“playTogether()”方法,如下所示:

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

发现动画延迟会引起问题。于是尝试了以下方法:

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

看起来它能正常工作!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接