我有这个布局层次结构:
<FrameLayout>
<ScrollView>...</ScrollView>
<LinearLayout>...</LinearLayout>
<LinearLayout>...</LinearLayout>
</FrameLayout>
使用Android 设备监视器我已经转储了视图层次结构,并且我已经实现了这一点:
正如预期的那样。但是,如果我包括另外两个布局:
<FrameLayout>
<ScrollView>...</ScrollView>
<LinearLayout>...</LinearLayout>
<LinearLayout>...</LinearLayout>
<include layout="@layout/a_framelayout"/>
<include layout="@layout/another_framelayout"/>
</FrameLayout>
注意:a_framelayout
包含 aLinearLayout
和another_framelayout
包含 a View
。
我明白了:
这两个布局不应该分别具有 3 和 4 的索引而不是 0 和 2 吗?为什么是ScrollView
他们之间?
如果我将布局更改为:
<FrameLayout>
<include layout="@layout/a_framelayout"/>
<include layout="@layout/another_framelayout"/>
<ScrollView>...</ScrollView>
<LinearLayout>...</LinearLayout>
<LinearLayout>...</LinearLayout>
</FrameLayout>
我得到:
这更有意义,但现在a_framelayout
被交换了another_framelayout
,为什么?
尽管发生了这种奇怪的布局行为,但所有视图都在屏幕中正确呈现,并且布局正常工作。
有什么线索吗?
谢谢你的时间。