<merge/>标签在UI的结构优化中起着非常重要的作用,它可以删减多余的层级,优化UI。<merge/>多用于替换FrameLayout或者当一个布局包含另一个时,<merge/>标签消除视图层次结构中多余的视图组。例如你的主布局文件是垂直布局,引入了一个垂直布局的include,这是如果include布局使用的LinearLayout就没意义了,使用的话反而减慢你的UI表现。这时可以使用<merge/>标签优化。
无论布局文件的根节点是什么,系统都会在上一层生成一个<FrameLayout>标签,因此,在布局文件的根节点使用<FrameLayout>实际上是多余的,但XML文件又不能没有任何节点,可以使用<merge>代替<FrameLayout>,系统在编译XML布局文件时不会为<merge>生成任何节点,相当于一个XML文件的节点占位符。<merge>实际上也是合并两个<FrameLayout>,所以使用<merge>代替根节点的<FrameLayout>,可以大大减少<FrameLayout>的生成