Android UI优化-merge标签的使用

       追求精益求精的程序员,项目开发完成怎么能少的了优化,偶然间发现一个比较不错的android 布局优化神器,merge标签,简单实用,下面就跟大家分享一下:  merge是什么?merge的使用?

一、merge是什么

       merge直译过来是合并的意思,在 我们的布局中就是合并多余的层级。merge不是view,也不是viewGroup,它只是声明一些视图等待被添加。

二、merge的使用

1.根布局为FrameLayout的情况下

正常布局未使用merge标签

通过工具查看视图结构(这个工具的使用方法在我的另一篇文章中点击打开链接是这样的:我们会发现,这样简单的页面布局,使用了两个FrameLayout节点,有一个多余的节点。

 

关键!关键!关键!我们直接把根布局的FrameLayout换成merge标签:

 

神奇的事就这样发生了,我们再通过工具查看页面结构:

使用完merge标签后,少了一层FrameLayout的渲染。

2.当子控件完全不需要依赖父容器时,比如一个页面只有一个textView 像这样:

页面结构是这样的:

 

这种情况下 我们可以吧</RelativeLayout>直接换成</merge>

聪明的你,看到这里已经想到了结果,没错就是你想的那样,我们又省去了一个RelativeLayout的节点

        还有其他的情况下课使用merge标签,比如说两个LinnerLayout嵌套,自定义view的情况,与include仪器使用时,只要明白了merge的思想,我想你会用的得心应手的。

总结:

    1.merge标签必须放到布局的根节点上

    2.merge标签不是view,也不是viewGroup,它只是一个声明了一个视图等待被添加

    3.当LayoutInflate加载view中使用的merge标签时,第二个参数不能为null,第三个参数设为true    LayoutInflater.from(context).inflate(R.layout.merge_layout_view, this, true);

 

 

 

 

 

 

 

 

 

    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值