我正在使用 ObjectAnimator 在类似于股票行情的文本视图中翻译文本。我想在按下按钮时暂停自动收报机。然而,尽管在动画对象上调用了 cancel()/end(),ticker 会继续移动直到动画结束。
还尝试在 AnimatorListerner#onAnimCancel() 中显式清除底层 textView 上的所有动画。然而,底层的 textView 似乎没有与任何动画相关联。
如果有人能指出会出现什么问题,那就太好了。
相关代码部分如下。
anim = ObjectAnimator.ofFloat(mTextViewTicker, "TranslationX", 0, -mSomeValue);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationCancel(Animator animation) {
Log.d(TAG,"Animation Pause invoked");
super.onAnimationCancel(animation);
}
public void onAnimationEnd(Animator animation) {
Log.d(TAG,"Animation Ended");
((View)((ObjectAnimator)animation).getTarget()).setTranslationX(anim.getAnimatedFraction());
}
});
anim.start();
public void stopScroll() {
anim.cancel();
}
stopScroll() 从活动中的按钮单击调用。