2014-08-27 79 views
0

我有一个问题,我试图让ViewAnimator中的孩子从底部滑动。然后按下后,它会再次滑下。ViewAnimator动画中的黑屏

Animation anim = new TranslateAnimation(
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
     Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f 
); 
anim.setDuration(350); 
anim.setInterpolator(new AccelerateInterpolator()); 

viewFlipper.setInAnimation(anim); 
viewFlipper.setOutAnimation(null); 
viewFlipper.setDisplayedChild(2); 

onBackPress:

Animation anim = new TranslateAnimation(
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 1.0f 
); 
     anim.setDuration(350); 
     anim.setInterpolator(new AccelerateInterpolator()); 

     viewFlipper.setInAnimation(null); 
     viewFlipper.setOutAnimation(anim); 
     viewFlipper.setDisplayedChild(0); 

但我的问题是,当我点击链接的第一次,屏幕变黑和滑梯了。当我点击后退按钮时,一切正常。 (滑梯下来,后面是第一屏...

任何帮助

编辑:

Animation inAnim = new TranslateAnimation(
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
     Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f 
); 
anim.setDuration(350); 
anim.setInterpolator(new AccelerateInterpolator()); 

Animation outAnim = new TranslateAnimation(
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
     Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f 
); 
outAnim.setDuration(350); 
outAnim.setInterpolator(new AccelerateInterpolator()); 

viewFlipper.setInAnimation(inAnim); 
viewFlipper.setOutAnimation(outAnim); 
viewFlipper.setDisplayedChild(2); 

回答

0
Animation inAnim = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 1.0f, Animation.RELATIVE_TO_PARENT, 0.0f 
); 
anim.setDuration(350); 
anim.setInterpolator(new AccelerateInterpolator()); 

Animation outAnim = new TranslateAnimation(
    Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f, 
    Animation.RELATIVE_TO_PARENT, 0.0f, Animation.RELATIVE_TO_PARENT, 0.0f 
); 
outAnim.setDuration(350); 
outAnim.setInterpolator(new AccelerateInterpolator()); 

viewFlipper.setInAnimation(inAnim); 
viewFlipper.setOutAnimation(outAnim); 
viewFlipper.setDisplayedChild(2); 
0

此:

viewFlipper.setOutAnimation(null); 

viewFlipper.setInAnimation(null); 

本质它告诉框架HIDE第一个视图,然后动画第二个视图。

供给相反方向的动画。 这可以通过仅使用两个动画来实现。只需使用滑入和滑出显示下一个视图,和相同的两个动画,但你必须反向他们 - 最好通过使用一些setRepeatMode(Animation.REVERSE) - 参考this question或只是声明额外的逆转动画。

+0

我不知道你是否理解我的期望,但我希望有一个孩子固定在位,第二个孩子会上下滑动。 – 2014-08-27 18:02:45

+0

对于不同的结果,尝试anim.setFillBefore(true)或anim.setFillAfter(true)。 – Jitsu 2014-08-28 09:45:02