我正在将TextView 500dp翻译到屏幕右侧,然后我使用一个监听器来监听我想要更改文本的动画结束,然后将TextView转换回其初始空间。
我的代码是:
ObjectAnimator animator = ObjectAnimator.ofFloat(rvDownCircle, "x", 500f);
animator.setStartDelay(500);
animator.setDuration(1500);
animator.start();
animator.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
}
@Override
public void onAnimationEnd(Animator animation) {
rvDownCircle.setText("New Label");
ObjectAnimator animator = ObjectAnimator.ofFloat(rvDownCircle, "x", 0);
animator.setDuration(1000);
animator.start();
}
@Override
public void onAnimationCancel(Animator animation) {
}
@Override
public void onAnimationRepeat(Animator animation) {
}
});
TextView被命名为rvDownCircle,你可以看到当我在AnimationEnd上时我将文本更改为新文本 - 但它发生的是文本保持不变。
我的问题是:我在这里做错了什么以及我应该改变什么,所以当我到达动画结束时,setText将生效。