2

我正在使用 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() 从活动中的按钮单击调用。

4

0 回答 0