Android Viewgroup:将两个视图淡入/混合在一起

时间:2013-01-07 19:56:04

标签: android animation view transition

我希望在ViewGroup中从一个视图淡出到另一个视图。 目前我正在使用setAlpha进行转换,但问题是只有一个视图正在渲染,一个在顶部并且正在逐渐消失。

  • ViewGroup内的视图数组是否按z轴排序?
  • 仅渲染顶部视图吗?

我的layout方法如下所示:

@Override
protected void onLayout(final boolean changed, final int l, final int t, final int r, final int b) {
    L.debug("laying out {} children", this.getChildCount());
    for (int i = 0; i < this.getChildCount(); i++) {
        L.debug("layout out {}", i);

        View view = this.getChildAt(0);
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
    }
}

1 个答案:

答案 0 :(得分:2)

您为什么不想使用ViewSwitcher?它完全符合你的要求。这是一个example

  

ViewGroup中的视图数组是否按z轴排序?

在Android中没有类似Z-order的东西。视图是在他们被添加到ViewGroup的oder中绘制的。首先添加先绘制。

  

仅呈现顶视图

不,android会在可见矩形中绘制所有视图,即使它们完全被其他视图覆盖。

我认为你应该修改这个地方this.getChildAt(0)并在你的ViewGroup中布局所有的孩子。