【问题标题】:ListView animation not scaling correctlyListView 动画未正确缩放
【发布时间】:2013-12-09 08:29:10
【问题描述】:

我正在尝试将缩放动画应用于我的列表。这个想法是列表折叠到顶部,我这样做的方式是将 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);

【问题讨论】:

    标签: android animation


    【解决方案1】:

    好的,我通过将 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-06
      相关资源
      最近更新 更多