2013-12-09 89 views
0

我想將縮放動畫應用到我的列表中。這個想法是,列表倒塌到頂部,我這樣做的方式是將Y軸縮放到無。但是,動畫未正確應用 - 列表在XML文件中列出的持續時間內沒有插值動畫,隨即在持續時間結束後重新出現。無論fillAfter設置爲什麼都會發生這種情況(這應該是正確的,對嗎?)。ListView動畫不能正確縮放

爲什麼這不是正確插值,以及它爲什麼在動畫終止後再次出現?

的動畫文件:

<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); 

回答

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>