我有一个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处理高度动画的好例子。希望能得到一些帮助,谢谢!