1

我无法让动画的 fillAfter 属性工作。我在 xml 中的翻译和动画集中都使用了它,但它总是跳到最后的标准对话框位置。这甚至可能吗?

xml动画中的当前幻灯片:

<set
android:fillAfter="true"
xmlns:android="http://schemas.android.com/apk/res/android">

<translate
    android:fromXDelta="100%"
    android:toXDelta="70%"
    android:fromYDelta="100%"
    android:toYDelta="70%"
    android:duration="2000" />

</set>

应用于对话框的 Themes.xml:

<style name="theme_dialog" parent="@android:style/Theme.Dialog">
    <item name="android:windowAnimationStyle">@style/style_slide_in_dialog</item>
</style>

<style name="style_slide_in_dialog">
    <item name="android:windowEnterAnimation">@anim/animation_slide_in_dialog</item>
    <item name="android:windowExitAnimation">@anim/animation_slide_out_dialog</item>
</style>
4

1 回答 1

0

像这样的动画TranslateAnimation是暂时的。如果您希望效果在动画完成后持续存在,您需要注册一个AnimationListener并做一些事情来使更改永久保存在onAnimationEnd(). 例如,对于 a TranslateAnimation,您需要调整您的LayoutParams以使其位于您的最终位置。

于 2012-04-12T13:06:22.167 回答