У меня есть два 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
, но я не уверен, почему они играют по-разному.