2014-08-27 78 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