0

我有这样定义的 top_sliding_out 动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator" >

    <alpha
        android:duration="300"
        android:fromAlpha="1"
        android:toAlpha="0" />

    <scale
        android:duration="300"
        android:fromXScale="1"
        android:fromYScale="1"
        android:pivotX="50%"
        android:pivotY="0%"
        android:toXScale="1"
        android:toYScale="0" />
</set>

代码触发动画:

public void onCheckedChanged(final CompoundButton buttonView, boolean isChecked)
{
    Animation anim = AnimationUtils.loadAnimation(this.getActivity(), R.anim.top_slide_out);
    anim.setFillAfter(true);
    ((View)buttonView.getParent()).startAnimation(anim);
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable()
    {
        public void run()
        {
            getListView().requestLayout();
        }
    }, anim.getDuration());
}

我执行此动画以在列表中隐藏我的自定义行。但问题是布局并没有改变它的大小,所以它留下了空洞。

动画前:

在此处输入图像描述

动画后:

在此处输入图像描述

我能做些什么呢?动画正在进行时如何更改布局?

4

0 回答 0