Android-merge标签减少布局层级

你将学到

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时,就会失效。

发表评论

关闭菜单