我有一个想要从屏幕外滑入的视图。以下代码在纵向模式下完美运行:
// 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();
}
});
(我让它远离屏幕以防止在视图传输到其官方“起始”位置时出现短暂的“闪烁”。不,将可见性设置为“消失”对我的目的不起作用。)
但是,如果我处于横向模式,则移动方向都是正确的(我用 0 而不是 -5000 对其进行了测试),但是虽然它适用于 0 和视图高度之间的值,但如果初始动画将其移出屏幕,第二个动画不再起作用。
这仅在横向模式下才是正确的——它在纵向模式下工作得很好。
为什么会这样,我该如何解决?