嵌套布局中使用"animateLayoutChanges"View展开动画影响其他View
View Expand Animation Affects Other Views by Using "animateLayoutChanges" in Nested Layout
对于橙色部分,我在其LinearLayout
上使用android:animateLayoutChanges="true"
和setVisibility(visible/gone)
来实现展开动画,但最后的TextView
(整行)看起来受该动画(flickrs)的影响,橙色部分下方的整个部分也没有平滑移动 up/down(看起来根本没有动画)。任何帮助,我将不胜感激。谢谢。
好的,我终于找到了解决方案:
将 android:animateLayoutChanges="true"
添加到您的 will-be-resized ViewGroup
.
使用setVisibility()
控制目标View
.
的可见性
将 android:animateLayoutChanges="true"
添加到 outer ViewGroup
will-be-resized ViewGroup
。这个outerViewGroup
一定是包含所有position-will-be-changedView
.
在setVisibility()
之前的Activity
中添加以下代码,rootLinearLayout
就是outerViewGroup
我在上面提到过:
LayoutTransition layoutTransition = rootLinearLayout.getLayoutTransition();
layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
温馨提示:
- 如果你错过了第3步,你会得到一个空指针异常。
- 如果你错过了第一步,你仍然会得到一个很好的展开动画,但是一个糟糕的折叠,你会看到你的target
View
会突然消失首先,然后 ViewGroup
崩溃。
结果:
对于橙色部分,我在其LinearLayout
上使用android:animateLayoutChanges="true"
和setVisibility(visible/gone)
来实现展开动画,但最后的TextView
(整行)看起来受该动画(flickrs)的影响,橙色部分下方的整个部分也没有平滑移动 up/down(看起来根本没有动画)。任何帮助,我将不胜感激。谢谢。
好的,我终于找到了解决方案:
将
android:animateLayoutChanges="true"
添加到您的 will-be-resizedViewGroup
.使用
setVisibility()
控制目标View
. 的可见性
将
android:animateLayoutChanges="true"
添加到 outerViewGroup
will-be-resizedViewGroup
。这个outerViewGroup
一定是包含所有position-will-be-changedView
.在
setVisibility()
之前的Activity
中添加以下代码,rootLinearLayout
就是outerViewGroup
我在上面提到过:LayoutTransition layoutTransition = rootLinearLayout.getLayoutTransition(); layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
温馨提示:
- 如果你错过了第3步,你会得到一个空指针异常。
- 如果你错过了第一步,你仍然会得到一个很好的展开动画,但是一个糟糕的折叠,你会看到你的target
View
会突然消失首先,然后ViewGroup
崩溃。
结果: