【问题标题】:Unable to change z order for animated view无法更改动画视图的 z 顺序
【发布时间】:2014-06-17 07:20:56
【问题描述】:

我已经尝试解决这个问题几个小时了,但我完全不知道该怎么做。

我有一个LinearLayout 和两个RelativeLayouts,每个高度相同。在动画开始之前,底部的可见性已经“消失”,我希望它“滑出”顶部onClick。幻灯片效果很好,但无论我做什么,动画视图总是在另一个之上。因为它应该看起来像底部的“滑出”,这不是我想要达到的效果。

我的动画是这样的:

<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:fromYDelta="-100%"
    android:interpolator="@android:anim/linear_interpolator"
    android:toYDelta="0"
    />

我已经尝试使用没有动画的视图执行view.bringToFront(),并且应该只停留在动画视图的顶部。但结果不是动画视图显示为底部视图。

谁能帮帮我?

【问题讨论】:

    标签: android animation view z-order


    【解决方案1】:

    这在诸如相对布局和框架布局之类的布局中受支持,其中支持子视图的 z-index 放置。你可以试试:

    view.bringToFront(); 
    

    来自文档的解释:更改视图在树中的 z 顺序,使其位于其他同级视图之上。

    你也可以试试:

    bringChildToFront(View child)
    

    更改子项的 z 顺序,使其位于所有其他子项之上。

    这些方法更改视图树中的子视图。合适的地方是动画的 animationEnded 方法。

    【讨论】:

    • 谢谢你!将两个RelativeLayouts 的包装ContainerLayout 也更改为RelativeLayout 是关键。现在工作正常!
    猜你喜欢
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多