上下にスライドするビューをアニメーション化したいと思います。私のレイアウト:
<RelativeLayout>
<LinearLayout
android:id="@+id/foo"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true" />
</RelativeLayout>
レイアウト「foo」は、アクティビティのレイアウトの下部に固定されています。最初は非表示にしておきたいです。たとえば、上部の y 座標を開始する画面の下部のピクセルにしたいと思います。
UI の他の場所でボタンをクリックすると、foo が上にスライドし、その下端が画面の下部に触れたときに終了します。
別のボタンをクリックすると、foo が下にスライドして元の開始位置 (上端が画面の下のピクセルにある場所) に戻ります。
私は次のアニメーション定義でそれをやろうとしています:
// slide up
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromYDelta="-100%"
android:toYDelta="0%"
android:duration="700"
android:fillBefore="true"
android:fillAfter="true">
</translate>
</set>
// slide down
<set
xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator">
<translate
android:fromYDelta="0%"
android:toYDelta="-100%"
android:duration="700"
android:fillBefore="true"
android:fillAfter="true">
</translate>
</set>
私の理解では、スライドアップ アニメーションを適用すると、fillBefore が true であるため、foo は -100% y に再配置する必要があります。その後、fillAfter が true であるため、元の位置までアニメートし、その後はそこにとどまります。スライド ダウン アニメーションも同様に機能します。
しかし、それは機能していません。ビューが飛び回っているようです。これを行う方法はありますか?
ありがとう