如何更改animateLayoutChanges机制使用的动画?

时间:2016-02-03 10:40:12

标签: android animation layout

我有一个RecyclerView用户选择一个项目。选择后,某些视图在文本之前变为可见(参见图像)。我想为它的外观设置动画。

Graphical representation

项目布局上的

animateLayoutChanges属性可以完美地完成工作,除了视图外观的动画类型 - 它会淡入。我希望它从0到100%的大小扩展,我相信它& #39; s被称为弹出'动画。

如果我禁用animateLayoutChanges并使用XML动画,它可以工作,但附近的文本不再是动画的(它应该滑动以容纳视图及其边距的空间)。它立即向右移动,然后播放动画。反向动画更糟糕,因为文本在视图消失之前会重叠视图。

所以我需要以某种方式组合默认机制和我自己的动画。 如果不深入研究自定义动画,最简单的方法是什么?

2 个答案:

答案 0 :(得分:31)

经过多次挖掘错误的地方后,我自己找到了答案。可能会帮助别人。

animateLayoutChanges属性(如果已启用)使用LayoutTransition的实例在ViewGroup中执行其工作。

因此,为了更改动画,您可以创建LayoutTransition的实例,为需要更改的转换设置Animator,然后通过{{将该实例分配给ViewGroup 1}}。

在我的情况下,结果是:

setLayoutTransition()

LayoutTransition reference documentation中的更多信息。

答案 1 :(得分:0)

您可以使用animateLayoutChange进行相同的操作,只需查看以下文章

https://proandroiddev.com/the-little-secret-of-android-animatelayoutchanges-e4caab2fddec