我认为我想从屏幕外滑入。以下代码在纵向模式下完美运行:
// Guarantees it's off screen to start (can't use height because at this point it's 0)
ObjectAnimator mSlideInAnimator = ObjectAnimator.ofFloat(
myView, "translationY",
-5000);
mSlideInAnimator.setDuration(0);
mSlideInAnimator.start();
// Must be done after view is created
myView.post( new Runnable() {
@Override
public void run() {
// For Animator, 0 is the object's original start position
ObjectAnimator mSlideInAnimator = ObjectAnimator.ofFloat(
myView, "translationY",
-myView.getHeight(), 0);
mSlideInAnimator.setDuration(DURATION_SLIDE_IN);
mSlideInAnimator.start();
}
});
(我让它从屏幕开始,以防止短暂的" blip"因为视图被传送到其官方"开始"位置。不,设置可见性不会消失为我的目的工作。)
然而,如果我处于横向模式,移动方向都是正确的(我用0而不是-5000测试它),但是它适用于0和视图高度之间的值,如果是初始动画将它移到屏幕外,第二个动画不再有效。
这只适用于横向模式 - 它在纵向上工作正常。
为什么会这样,我该如何解决它?