我有一個LinearLayout,我用它作爲一些按鈕和textview的容器,我想動畫的高度給人一種印象,當用戶按下「顯示「按鈕。ValueAnimator的LinearLayout容器的高度動畫
我已經在我的xml中將LinearLayout設置爲layout_height =「0dp」和visibility =「gone」。然後,我希望將其設置爲可見,並且無論高度需要包裝內容。目前我有問題,甚至動畫它,永遠不知道包裝內容的高度。
這裏是我的動畫製作方法:
private void toggle(final LinearLayout v) {
v.setVisibility(View.VISIBLE);
ValueAnimator va = ValueAnimator.ofInt(0, 300);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
v.getLayoutParams().height = value.intValue();
v.invalidate();
}
});
va.start();
}
也許問題是我如何設置的LinearLayout的高度?或者我誤解了ValueAnimator的功能?我查看了Chet Haase的博客文章,但他們沒有包含任何具體的高度動畫示例。我也無法找到如何使用3.0+以上的API來處理高度動畫的好例子。希望對此有所幫助,謝謝!
爲什麼不只是使用佈局動畫? – 2012-08-13 13:30:51
坦率地說,我不知道如何使用它,我認爲,因爲我只針對API的更新版本,所以使用更新的類會更簡單......我將繼續研究如何使用LayoutAnimation實現,如果你有一個想法如何做到這一點,隨時發佈它作爲一個更好的解決方案:) – span 2012-08-13 13:34:35
是否有任何理由失效? – portfoliobuilder 2016-09-23 00:01:47