Android通过动画调整容器大小

Android通过动画调整容器大小,android,animation,Android,Animation,我有一个线性布局,有两个垂直的文本框。我想再添加/删除一个文本框(更具体地说,将其设置为可见/消失)。发生这种情况时,我希望使用动画调整父视图的大小,而不是让它上下跳跃。我在父线性布局上放置了一个布局动画,它对框的输入/输出设置动画,但它似乎先调整大小,然后对子对象设置动画,但这并不能真正解决我遇到的问题(看起来不错,但你知道) 有什么想法吗?我想出了办法。我通过调整容器的大小来“艰难地”做到这一点。基本流程如下: 保存布局参数 获取容器的物理大小 使用物理高度设置layoutparams 使用

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


有什么想法吗?

我想出了办法。我通过调整容器的大小来“艰难地”做到这一点。基本流程如下:

保存布局参数 获取容器的物理大小 使用物理高度设置layoutparams 使用递增设置大小的处理程序循环 完成后,设置上一个布局参数

代码假定您使用的是线性布局和包裹内容的高度。如果不是,它将需要调整

见博客


我知道这个问题已经很老了,但在我自己遇到它之前,我认为这是一个常见的问题

我从您的代码中获得了一些灵感,但我没有使用像这样的单独类,而是扩展了LinearLayout类并添加了一些方法,以便在内容更改时能够对其进行动画处理(在我的例子中,我使一些子视图可见或消失)。仍在制定一些细节,但到目前为止效果相当不错

好的是,我可以访问/扩展onMeasure方法,这样我就不必在动画之后对大小进行任何估计,无论我的容器中有什么,动画都将始终放在正确的位置


希望这有助于

选择您的答案。不确定哪一个更好/更坏,但如果这是一个折腾,选择自己的有点跛脚;)