Можно перейти прямо ко второму виду в ViewAnimator
У меня есть ViewAnimator
(ViewSwitcher
, если быть точным) с ассоциированными с ним анимациями fade in/out и двумя Views
, которые я перехожу между методами ViewAnimator.showNext()
и ViewAnimator.showPrevious()
.
В моем приложении есть требование, где иногда мне нужно начинать прямо со второго View
, не показывая анимацию затухания при переходе от первого View
ко второму. Кто-нибудь знает, есть ли простой способ сделать это без необходимости возиться с анимациями in/out, связанными с моим ViewAnimator
?
Примечание. Я попытался позвонить ViewAnimator.setDisplayedChild(1)
, но также анимирует переход.
Ответы
Ответ 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);
}