首页 > 解决方案 > 使用 LayoutTransition 为多个视图设置动画

问题描述

我有两个Buttons必须设置动画,一个应该向左移动,而另一个应该向右移动。我创建了以下内容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总是朝着同一个方向。我对此进行了一些研究,但找不到任何东西。

编辑:我也做了一些调试,Android 也调用了 的方法start()AnimationSet但我不确定为什么它们的播放方式不同。

标签: androidandroid-layoutanimation

解决方案


推荐阅读