2012-06-27 22 views
11

我有一個ViewAnimatorViewSwitcher準確地說)與淡入/淡出動畫相關的兩個Views我使用ViewAnimator.showNext()ViewAnimator.showPrevious()方法之間轉換。可能直接跳到ViewAnimator中的第二個視圖

有一個在我的應用程序的要求,其中有時我需要從第二View直開始,而不顯示從第一View將第二淡出動畫。任何人都知道是否有一種簡單的方法可以實現這一點,而不必混淆與ViewAnimator相關的進/出動畫?

注:我已經打過電話ViewAnimator.setDisplayedChild(1)但也動畫過渡。

回答

16

我環顧四周,等待迴應,但我猜這是不可能的。因此,在沒有更好的解決辦法,進/出動畫設置你的ViewAnimator「爲null當你想直接跳到你ViewAnimator的特定子View,如下:

myViewAnimator.setInAnimation(null); 
myViewAnimator.setOutAnimation(null); 
myViewAnimator.setDisplayedChild(childIndex); 

如果有人知道更好的方式 - 而不是玩ViewAnimator的進出動畫 - 請分享!

+1

我認爲這是唯一的方法,它是一種恥辱真的。 –

7

不幸的是,沒有內置函數來做到這一點,但你可以添加此功能,這項工作:

public static void setDisplayedChildNoAnim(ViewAnimator viewAnimator, int whichChild) { 
    Animation inAnimation = viewAnimator.getInAnimation(); 
    Animation outAnimation = viewAnimator.getOutAnimation(); 
    viewAnimator.setInAnimation(null); 
    viewAnimator.setOutAnimation(null); 
    viewAnimator.setDisplayedChild(whichChild); 
    viewAnimator.setInAnimation(inAnimation); 
    viewAnimator.setOutAnimation(outAnimation); 
} 
+0

我還沒有嘗試過你的解決方案,但它看起來不錯! –

相關問題