美文网首页Android-技术
Android include与merge标签使用

Android include与merge标签使用

作者: 3Q竹林 | 来源:发表于2017-02-05 19:07 被阅读208次

    include和merge标签的作用是实现布局文件的重用。
    使用include和merge标签将一个布局嵌入到另一个布局中,或者说将多个布局中的相同元素抽取出来,独立管理,再复用到各个布局中,便于统一的调整。

    需要注意的地方:
        我们可在include标签中更改一些属性的值,比如重新设置id,改变布局属性(即android:layout_*属性)等,看下边的代码;

    若include标签中重新指定id,那么其中的控件就不可当成主xml(包含include标签的xml)中的控件来直接获得了,必须先获得include对应的xml文件(就是titlebar.xml),再通过布局文件的findViewById方法来获得其中控件。 当然,若原布局设置了id属性,会被覆盖掉。

    当需要在include标签中改变布局属性时,为了让其他属性生效,就必须重写android:layout_height和android:layout_width属性,否则任何针对layout调整都是无效的。

    include有一个缺点就是可能会产生多余的层级,比如,被复用布局是一个垂直的LinearLayout布局,当以include标签插入到另一个垂直的LinearLayout布局中时,结果就是一个垂直的LinearLayout里包含一个垂直的LinearLayout,这个嵌套的布局并没有实际意义,只会让UI性能变差。这时就可以使用merge标签。

    2. merge标签的使用

    merge标签可以自动消除当一个布局插入到另一个布局时产生的多余的View Group,也可用于替换FrameLayout。用法就是直接使用merge标签标签作为复用布局的根节点。

    需要注意的地方:

    1.merge标签只能作为复用布局的root元素来使用。
    2.使用它来inflate一个布局时,必须指定一个ViewGroup实例作为其父元素并且设置attachToRoot属    性为true(参考 inflate(int, android.view.ViewGroup, boolean) 方法的说明 )。

    相关文章

      网友评论

        本文标题:Android include与merge标签使用

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