FrameLayout不尊重绘制顺序

时间:2014-10-23 14:23:30

标签: android android-layout android-framelayout z-order view-hierarchy

我有这个布局层次结构:

<FrameLayout>

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

</FrameLayout> 

使用 Android设备监视器我已经转储了视图层次结构,我已经实现了这个目标:

view dump 1

正如所料。但如果我再添加两个布局:

<FrameLayout>

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

    <include layout="@layout/a_framelayout"/>

    <include layout="@layout/another_framelayout"/>

</FrameLayout> 

注意:a_framelayout包含LinearLayoutanother_framelayout包含View

我明白了:

view dump 2

这两个布局不应该分别有3和4的索引而不是0和2吗?为什么它们之间有ScrollView

如果我将布局更改为:

<FrameLayout>

    <include layout="@layout/a_framelayout"/>

    <include layout="@layout/another_framelayout"/>

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

</FrameLayout> 

我明白了:

view dump 3

这更有意义,但现在a_framelayoutanother_framelayout交换了,为什么?

尽管发生了这种奇怪的布局行为,但所有视图都在屏幕上正确呈现,并且布局正常工作。

任何线索?
谢谢你的时间。

0 个答案:

没有答案