merge标签的核心作用是减少布局层级,避免冗余ViewGroup嵌套;它仅作结构占位,不参与渲染,必须为XML根标签且inflate时attachToRoot需为true。

merge 标签的核心作用是减少布局层级,避免无意义的 ViewGroup 嵌套。它本身不是 View 或 ViewGroup,不参与渲染,只起“结构占位”作用——把里面的内容直接平铺到父布局中,从而砍掉一层冗余节点。
什么时候必须用 merge
典型场景是配合 <include></include> 使用:
- 被 include 的布局,如果它的根容器(比如 LinearLayout)和父布局类型相同、又没特殊属性要依赖,那这个根容器就是多余的
- 直接把那个根容器换成
<merge></merge>,子 View 就会“原地升一级”,直接挂到父布局下 - 例如:父布局是
FrameLayout,include 的子布局根也是FrameLayout,这时子布局改用<merge></merge>,就能省掉一层 FrameLayout
使用 merge 的硬性限制
它不是万能胶,有明确规则:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~