Подтвердить что ты не робот

Можно перейти прямо ко второму виду в ViewAnimator

У меня есть ViewAnimator (ViewSwitcher, если быть точным) с ассоциированными с ним анимациями fade in/out и двумя Views, которые я перехожу между методами ViewAnimator.showNext() и ViewAnimator.showPrevious().

В моем приложении есть требование, где иногда мне нужно начинать прямо со второго View, не показывая анимацию затухания при переходе от первого View ко второму. Кто-нибудь знает, есть ли простой способ сделать это без необходимости возиться с анимациями in/out, связанными с моим ViewAnimator?

Примечание. Я попытался позвонить ViewAnimator.setDisplayedChild(1), но также анимирует переход.

4b9b3361

Ответ 1

Я оглянулся и ждал ответа, но я предполагаю, что это невозможно. Таким образом, при отсутствии лучшего решения установите для анимации ViewAnimator in/out значение null, если вы хотите перейти прямо к определенному дочернему элементу View вашего ViewAnimator, как показано ниже:

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

Если кто-то знает лучший способ - вместо того, чтобы играть с анимацией ViewAnimator in/out - пожалуйста, поделитесь!

Ответ 2

К сожалению, для этого нет встроенной функции, но вы можете добавить эту функцию, которая выполняет задание:

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);
}