我有一个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