我有 2 个RelativeLayout
这样的视图:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<View
android:id="@+id/view1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/shape_red"/>
<View
android:id="@+id/view2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@id/view1"
android:background="@drawable/shape_blue"/>
</RelativeLayout>
现在,我将 y 属性设置为view1
从 0 到 300 的动画。但我想view2
根据view1
- 更改其位置,因为view2
设置为低于 (layout-below) view1
。
由于这不起作用,我尝试onAnimationEnd
在动画中添加一个侦听器。像这样:
ObjectAnimator ani = ObjectAnimator.ofFloat(view1, "Y", 200);
ani.setDuration(2000);
ani.addListener(new AnimatorListenerAdapter()
{
@Override
public void onAnimationEnd(Animator animation)
{
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, view2.getHeight());
params.addRule(RelativeLayout.BELOW, view1.getId());
view2.setLayoutParams(params);
}
});
但view2
根本没有改变它的位置。
如果可能的话,我想避免制作新动画view2
,所以请不要费心推荐一个。;)
有人有什么建议吗?