我想为向上和向内滑动的视图设置动画。我的布局:
<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>
所以我的理解 - 如果我应用上滑动画, foo 应该将自身重新定位在 -100% y,因为 fillBefore 是真的。然后它应该动画到它的原始位置,然后停留在那里,因为 fillAfter 是真的。向下滑动动画的工作原理类似。
但它不起作用,视图似乎跳来跳去。任何想法如何做到这一点?
谢谢