[英]Android Animate view from off screen not working
我的视图完全位于屏幕之外,我试图将其设置为屏幕上的动画。
我打电话的时候:
view.startAnimation(tA);
没有任何反应,tA.initialize和tA.applyTransformation永远不会被调用。
如果我在开始动画之前移动视图以使其中任何部分可见,则动画可以正常工作。
当视图位于父视图之外时,什么阻止视图被动画?
通过研究Android Animations在开始或结束时提供屏幕外坐标时效果不佳的相同问题,我的理解是这样。
Android论坛上有一些关于这个bug的对话已经解决,但我仍然遇到4.2的问题。
编辑:
第二个想法,我只是遇到了这个答案 ,如果你可以使用更新的API( ObjectAnimator
),它提供了一个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(view, "y", 0, 100);
是
ObjectAnimator.ofFloat(Object objBeingAnimated, String propertyBeingAnimated, float startValue, float endValue)
我发现这个答案使用ValueAnimator
来修改MarginLayoutParams.topMargin
()中的MarginLayoutParams.topMargin
(在我的例子中onAnimationUpdate()
,这解决了这个问题。 我的视图以其边距设置开始,以便视图关闭屏幕。
ObjectAnimator
方法很有前途,但对我来说不起作用,它与TranslateAnimation
的屏幕外视图有相同的截止问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.