ListView动画未正确缩放

时间:2013-12-09 08:29:11

标签: android animation

我试图将缩放动画应用到我的列表中。我的想法是列表折叠到顶部,我这样做的方法是将Y轴缩放为空。但是动画未正确应用 - 列表在XML文件中列出的持续时间内消失,没有插值动画,然后在持续时间结束时重新出现。无论fillAfter设置为什么(这应该是真的,对吧?)都会发生这种情况。

为什么这不能正确插值,以及为什么它会在动画终止后再次出现?

动画文件:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/accelerate_interpolator"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:duration="500"
        android:pivotY="0"
        android:fillAfter="true"
        />
</set>

我如何调用动画:

ListView list = (ListView) getView().findViewById(android.R.id.list);
Animation collapseList = AnimationUtils.loadAnimation(getActivity(), R.anim.collapse_search_results);
list.startAnimation(collapseList);

1 个答案:

答案 0 :(得分:0)

好的,我通过将pivotX,fromXScale和toXScale值添加到我的XML文件来修复此问题。我需要它们,即使我没有沿着X轴缩放。

然而动画仍然没有存在,但是我想摆脱托管ListView的片段,所以我只是添加了一个侦听器来在动画结束时销毁片段。

我正在使用的XML文件:

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale
        android:interpolator="@android:anim/accelerate_interpolator"
        android:fromYScale="1.0"
        android:toYScale="0.0"
        android:fromXScale="1.0"
        android:toXScale="1.0"
        android:duration="400"
        android:pivotY="0"
        android:pivotX="0"
        android:fillAfter="false"
        />
</set>