可以直接跳转到ViewAnimator中的第二个视图

Adi*_*ain 12 android android-animation android-view

我有一个ViewAnimator(ViewSwitcher确切地说)与它相关的淡入/淡出动画和两个Views我在使用ViewAnimator.showNext()ViewAnimator.showPrevious()方法之间转换的动画.

在我的应用程序中有一个要求,有时我需要直接从第二个开始View,而不显示从第一个View到第二个的淡入淡出动画.任何人都知道是否有一种直接的方法来实现这一点,而不必乱用与我相关的输入/输出动画ViewAnimator

注意:我尝试过调用,ViewAnimator.setDisplayedChild(1)但也可以设置过渡动画.

Adi*_*ain 17

我环顾四周等待回应,但我猜这是不可能的.因此,在没有更好的解决办法,设置您ViewAnimator的在当你想直接跳转到一个特定的子/出动画空View你的ViewAnimator,如下:

myViewAnimator.setInAnimation(null);
myViewAnimator.setOutAnimation(null);
myViewAnimator.setDisplayedChild(childIndex);
Run Code Online (Sandbox Code Playgroud)

如果有人知道更好的方式 - 而不是玩ViewAnimator动画片的进/出动画 - 请分享!


min*_*pif 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);
}
Run Code Online (Sandbox Code Playgroud)