2

我有一个使用TranslateAnimation动画的视图:

TranslateAnimation translateAnim = new TranslateAnimation(fromX, toX, fromY, toY);
translateAnim.setDuration(SLIDING_SPEED);
translateAnim.setInterpolator(new BounceInterpolator());
translateAnim.setFillAfter(true);
mSlidingView.startAnimation(translateAnim);

动画效果很好,但完成后我不能再点击视图了。相反,我仍然可以单击它以前的位置。

我在 StackOverflow 上搜索了类似的问题(这里这里这里),但没有一个提供任何解决方案。我听说ObjectAnimator解决了这个问题,但是我可以使用以前的 API 做些什么吗?(我不想依赖像NineOldAndroids这样的另一个第三方库来支持 pre-honeycomb 设备上的新动画 API)。哦,我试图使视图无效,但它并没有改变任何东西。

任何想法?

谢谢!

4

2 回答 2

0

好吧,我想没有链接,但是您尝试过吗:(在 setFillAfter 之前)

translateAnim.setFillEnabled(true);
于 2012-05-09T09:43:41.037 回答
0

API 11+中,我们可以通过ObjectAnimator类来做到这一点。

API 10-中,当我们翻译视图时,视觉视图将被翻译,但物理位置仍然在旧位置,在完成动画后更改翻译视图的边距可以解决问题。

于 2014-01-27T13:39:00.297 回答