【发布时间】:2012-08-09 17:40:09
【问题描述】:
我有一个 LinearLayout,我用它作为一些按钮和 textview 的容器,我想为它们的高度设置动画,以便在用户按下“显示”按钮时给人一种布局向下滑动的印象。
我已在我的 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 处理高度动画。希望得到一些帮助,谢谢!
【问题讨论】:
-
为什么不直接使用布局动画?
-
坦率地说,我不知道如何使用它,我认为由于我只针对 API 的较新版本,因此使用较新的类会更简单......我会继续研究如何使用 LayoutAnimation 进行操作,如果您对如何操作有任何想法,请随时将其发布为更好的解决方案 :)
-
无效有什么原因吗?
标签: android animation android-linearlayout