Android通过动画调整大小容器

时间:2011-01-27 15:52:57

标签: android animation

我有一个带有几个文本框的线性布局,垂直。我想添加/删除一个文本框(更具体地说,将其设置为可见/消失)。当发生这种情况时,我想用动画调整父视图的大小,而不是让它上下跳动。我在父线性布局上放置了一个布局动画,它在框中输入/输出动画,但它似乎首先调整大小,然后为孩子设置动画,但这并没有真正解决我遇到的问题(看起来不错,但你知道)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我想出了什么。我通过调整容器大小来实现“艰难的方式”。基本流程如下:

保存布局参数 获取容器的物理尺寸 使用物理高度设置布局参数 循环使用处理程序逐步设置大小 完成后,设置先前的布局参数

代码假设您使用的是线性布局和WRAP_CONTENT的高度。如果没有,则需要进行调整。

参见博客

http://www.touchtech.co/blog/resize-animation/

答案 1 :(得分:0)

我知道这个问题已经很老了,但我认为这是一个常见的问题,然而我自己也会遇到这个问题。

我从你拥有的代码中获得了一些灵感,但是我没有使用像这样的单独的类,而是扩展了LinearLayout类并添加了一些方法,以便在内容发生变化时为其设置动画(在我的例子中) ,我正在让一些孩子看到VISIBLE或GONE)。仍在制定一些细节,但到目前为止它的效果非常好。

好处是我可以访问/扩展onMeasure方法,因此我不必在动画后对大小做任何估计,无论我在容器中有什么,动画总是会到正确的位置

希望有所帮助