Android merge减少布局层级
2019-01-25 本文已影响29人
TryEnough
原文链接
更多教程
你将学到
1.merge 标签的 使用方法
2.merge 标签的 使用注意点
3.merge 标签的 使用例子
merge标签介绍
在使用 include标签将布局导入其他布局时,可能引入冗余的布局层次,会造成性能损耗。例如:
layout2.xml 文件被引入到 layout1.xml的例子:
//layout2.xml 文件
<FrameLayout>
<Button />
</FrameLayout>
//layout1.xml 文件
<FrameLayout>
<include layout="@layout/layout2"/>
</FrameLayout>
此时,在layout1中的结构是这样的:
<FrameLayout>
<FrameLayout> // 冗余的布局层级
<Button />
</FrameLayout>
</FrameLayout>
产生了 冗余的布局层级(不需要的 FrameLayout),为了去掉这个多余的布局,可以使用 merge
标签。将layout2.html替换成这样:
//layout2.html
<merge>
<Button />
</merge>
使用merge标签时的“注意点”
-
1.merge必须放在布局文件的根节点上
-
2.merge的布局会受到外部布局类型的影响,造成展示错位
例如:merge标签中使用了android:layout_below
时,当外部父标签是LinearLayout时,就会失效。