嵌套布局中使用"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(看起来根本没有动画)。任何帮助,我将不胜感激。谢谢。

好的,我终于找到了解决方案:

  1. android:animateLayoutChanges="true" 添加到您的 will-be-resized ViewGroup.

  2. 使用setVisibility()控制目标View.

  3. 的可见性
  4. android:animateLayoutChanges="true" 添加到 outer ViewGroup will-be-resized ViewGroup。这个outerViewGroup一定是包含所有position-will-be-changedView.

  5. setVisibility()之前的Activity中添加以下代码,rootLinearLayout就是outerViewGroup 我在上面提到过:

    LayoutTransition layoutTransition = rootLinearLayout.getLayoutTransition();
    layoutTransition.enableTransitionType(LayoutTransition.CHANGING);
    

温馨提示:

  1. 如果你错过了第3步,你会得到一个空指针异常。
  2. 如果你错过了第一步,你仍然会得到一个很好的展开动画,但是一个糟糕的折叠,你会看到你的target View会突然消失首先,然后 ViewGroup 崩溃。

结果: