Анимация нескольких видов с помощью LayoutTransition - PullRequest
0 голосов
/ 31 января 2020

У меня есть два Buttons, которые я должен оживить, один должен go слева, а другой справа. Я создал следующее AnimationSet:

final Animator rightAlpha = ObjectAnimator.ofFloat(rightButton, "alpha", 1, 0);
final Animator rightTranslation = ObjectAnimator.ofFloat(rightButton, "translationX", 0, 100);
final Animator leftAlpha = ObjectAnimator.ofFloat(leftButton, "alpha", 1, 0);
final Animator leftTranslation = ObjectAnimator.ofFloat(leftButton, "x", 0, -100);

AnimatorSet disappearing = new AnimatorSet();
disappearing.playTogether(rightAlpha, rightTranslation, leftAlpha, leftTranslation);

Если я вручную вызываю disappearing.start(), анимации запускаются правильно, но мне нужно добавить анимацию как LayoutTransition. Вот где начинается проблема, у меня есть следующий код:

LayoutTransition itemLayoutTransition = new LayoutTransition();
itemLayoutTransition.setAnimator(LayoutTransition.DISAPPEARING, disappearing);
parentView.setLayoutTransition(itemLayoutTransition);

При изменении макета запускается анимация, но проблема в том, что оба Buttons всегда go в одном направлении. Я провел некоторое исследование по этому вопросу, но ничего не смог найти.

Редактировать: Я также провел некоторую отладку и Android также вызывает метод start() из AnimationSet, но я не уверен, почему они играют по-разному.

...