Android merge减少布局层级

作者: TryEnough | 来源:发表于2019-01-25 18:28 被阅读29次

    原文链接

    更多教程


    你将学到

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

    原文链接

    更多教程

    相关文章

      网友评论

        本文标题:Android merge减少布局层级

        本文链接:https://www.haomeiwen.com/subject/vbqvjqtx.html