3

我有这个布局层次结构:

<FrameLayout>

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

</FrameLayout> 

使用Android 设备监视器我已经转储了视图层次结构,并且我已经实现了这一点:

查看转储 1

正如预期的那样。但是,如果我包括另外两个布局:

<FrameLayout>

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

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

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

</FrameLayout> 

注意:a_framelayout包含 aLinearLayoutanother_framelayout包含 a View

我明白了:

查看转储 2

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

如果我将布局更改为:

<FrameLayout>

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

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

    <ScrollView>...</ScrollView>

    <LinearLayout>...</LinearLayout>

    <LinearLayout>...</LinearLayout>

</FrameLayout> 

我得到:

查看转储 3

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

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

有什么线索吗?
谢谢你的时间。

4

0 回答 0