Android从屏幕外部动画视图不起作用

10
我有一个视图,完全定位在屏幕外面,并且我正在尝试将其动画显示在屏幕上。
当我调用:
view.startAnimation(tA);

没有任何事情发生,tA.initialize和tA.applyTransformation从未被调用。

如果在开始动画之前移动视图使其任意部分可见,则动画将正常工作。

当一个视图定位在父视图的外侧时,是什么阻止了它的动画效果?

2个回答

3
根据我的研究,我了解到Android动画在提供其起始或结束的屏幕坐标时表现不佳。关于这个bug已经被解决的Android论坛上有一些对话,但我在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)

0

我发现使用ValueAnimatoronAnimationUpdate()中修改MarginLayoutParams.topMargin(在我的情况下)来解决问题,这个答案在这里

ObjectAnimator的方法很有前途,但对于我来说并没有起作用,它与TranslateAnimation一样无法处理屏幕外视图的截断问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接