屏幕外的Android Animate视图不起作用

时间:2012-02-12 18:15:32

标签: android animation off-screen

我的视图完全位于屏幕之外,我正在尝试将其设置为屏幕上的动画。

我打电话的时候:

view.startAnimation(tA);

没有任何反应,tA.initialize和tA.applyTransformation永远不会被调用。

如果在开始动画之前移动视图以使其中的任何部分都可见,则动画可以正常工作。

当视图位于父视图之外时,是什么阻止视图被设置动画?

2 个答案:

答案 0 :(得分:1)

我的理解是,研究同样的问题,Android动画在开始或结束时提供屏幕外坐标时表现不佳。

Android论坛上有一些关于这个bug的对话已经解决,但我仍然遇到4.2问题。

修改

第二个想法,我刚刚遇到了这个answer,如果你可以使用更新的API(ObjectAnimator),它提供了一个可行的替代方案。

View view = this;
ObjectAnimator anim = ObjectAnimator.ofFloat(view, "y", 0, 100);
anim.setDuration(super.animationDuration());
anim.start();

ObjectAnimator.ofFloat(view, "y", 0, 100);的属性

ObjectAnimator.ofFloat(Object objBeingAnimated, String propertyBeingAnimated, float startValue, float endValue)

答案 1 :(得分:0)

我发现this answer使用ValueAnimator来修改MarginLayoutParams.topMargin中的onAnimationUpdate()(在我的情况下),这解决了问题。我的视图以其边距设置开始,以便视图不在屏幕上。

ObjectAnimator方法很有前途,但对我不起作用,它与TranslateAnimation的屏幕外视图有相同的截止问题。