1

我有一個包含多個按鈕和兩個文本視圖的佈局(RelativeLayout)。對於每次信息更改,我會淡出所有視圖,更新信息並淡入視圖。我爲此使用layoutanimations。TextViews在Android 4上只動畫一次

很奇怪的是,文本視圖只能動畫一次。他們一次正確地淡入淡出,然後不再生氣。另一方面,按鈕繼續動畫就好了。

另一個可能很奇怪的事情是,我沒有在android 2.3.x上得到這個問題,但在android 4.0.x上。

我可以解決此問題通過在褪色後的文本視圖結算動畫,但它看起來不那麼好的,因爲他們仍然沒有得到褪色。

我試圖在清除動畫淡入之前的文本視圖,但它沒有幫助。我也嘗試了清單中targetSdkVersion屬性的不同設置,但沒有任何結果。

動畫淡入淡出(淡出是相似的):

<alpha xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="750" 
    android:fillAfter="true" 
    android:fromAlpha="0.0" 
    android:interpolator="@android:anim/accelerate_interpolator" 
    android:toAlpha="1.0" 
/> 

動畫代碼(這是運行每次佈局淡入):

// Set listener. 
viewGroup.setLayoutAnimationListener(listener); 

// Load animation. 
final Animation fadeIn = AnimationUtils.loadAnimation(context, R.anim.fade_in); 

// Create and start animation controller. 
final LayoutAnimationController animController = new LayoutAnimationController(fadeIn); 
viewGroup.setLayoutAnimation(animController); 
animController.setAnimation(fadeIn); 
animController.setDelay(FADE_IN_DELAY + extraDelay); 
animController.setOrder(LayoutAnimationController.ORDER_REVERSE); 
animController.start(); 

沒有人有任何想法? Buttons和TextViews之間是否存在某種動畫特定的區別? Android 4中是否有任何動畫更改會打破向後兼容性?

謝謝!

+0

我的淡入動畫在4.2.1中再次正常工作。由於我有一個解決方法,我不會花更多時間試圖解決這個問題。 – Snakebunk

回答

2

佈局動畫僅在視圖組佈局它的子項時纔會發生 - 根據[LayoutAnimationController][1]文檔,每個孩子都會播放相同的動畫,但具有不同的開始時間 - 通常用於例如。一個ListViewGridView來動畫項目的入口。

動畫將而不是當您更新您的內容時通常會播放。您需要使用View.startAnimation(Animation)View.clearAnimation()以確保每次更新內容時播放動畫。

+0

是的,我同意。我在上面的代碼片段中設置了viewGroup的佈局,並且佈局動畫從最後一行開始:animController.start(); – Snakebunk

+0

我可以補充一點,我不在佈局xml中附加布局動畫。正如代碼片段所描述的那樣,它在Java代碼中處理。 – Snakebunk