1

我有一个想要从屏幕外滑入的视图。以下代码在纵向模式下完美运行:

// 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 和视图高度之间的值,但如果初始动画将其移出屏幕,第二个动画不再起作用。

这仅在横向模式下才是正确的——它在纵向模式下工作得很好。

为什么会这样,我该如何解决?

4

0 回答 0