我有一个使用TranslateAnimation动画的视图:
TranslateAnimation translateAnim = new TranslateAnimation(fromX, toX, fromY, toY);
translateAnim.setDuration(SLIDING_SPEED);
translateAnim.setInterpolator(new BounceInterpolator());
translateAnim.setFillAfter(true);
mSlidingView.startAnimation(translateAnim);
动画效果很好但在完成后我无法再点击视图了。相反,我仍然可以点击它之前的位置。
我在StackOverflow上搜索了类似的问题(here,here和here)但没有提供任何解决方案。我听说ObjectAnimator解决了这个问题,但是我可以使用之前的API做些什么吗? (我不想依赖另一个第三方库,如NineOldAndroids来支持预蜂窝设备上的新动画API。哦,我试图invalidate视图,但它没有改变任何东西。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
嗯,我猜没有链接,但你试过了吗? (在setFillAfter之前)
translateAnim.setFillEnabled(true);
答案 1 :(得分:0)
在 API 11 + 中,我们可以通过 ObjectAnimator 类来实现。
在 API 10 - 中,当我们翻译视图时,视觉视图将被翻译,但物理位置仍然在旧位置,在完成动画后更改翻译视图的边距可以解决问题。