次のようなビュー レイアウトがあります。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/light_gray"
android:padding="5dip">
<View android:id="@+id/fixedSpace" android:layout_width="fill_parent"
android:layout_height="50dip" android:background="@color/aqua"
android:layout_alignParentBottom="true" android:clickable="true"
android:onClick="onClickStartAnimation" />
<View android:id="@+id/dynamicSpace" android:layout_width="fill_parent"
android:layout_height="200dip" android:background="@color/lime"
android:layout_above="@id/fixedSpace" />
<View android:id="@+id/remainingSpace" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@color/pink"
android:layout_alignParentTop="true" android:layout_above="@id/dynamicSpace" />
</RelativeLayout>
私が達成したいのは、基本的にdynamicSpace
時間tにわたる成長/縮小動作です。アニメーションを使用すると、次のものが作成できます。
t=1:
t=2:
t=3:
dynamicSpace
ただし、それは実際にはビューのサイズを変更しません。特にremainingSpace
. ビューの移動をアニメーション化するだけdynamicSpace
です。しかし、ビューの「コンテナ」には、最初からすでにスペースが占有されています。
正しいのは、ライム色dynamicSpace
が 0px で始まり、ピンク色remainingSpace
が引き継ぐため、その間に灰色のスペースがありません。