布局优化include、Viewstub、merge介绍

一.基础概念:

1.include:将重复使用的相同的布局放在include里面。

2.merge:设置在布局文件的根节点上,一般配合include使用,在include中引入merge会使得merge标签内包含的内容会直接填充到include的位置,不会再添加任何额外的布局结构。

3.Viewstub:属于view 的一种,默认是不可见的,它没有大小,没有绘制功能,也不参与布局,资源消耗非常低,只有通过调用setVisibility函数或者Inflate函数才会将其要装载的目标布局给加载出来。

二.作用概括:

1.include:实现布局复用。

2.merge:减少布局层级,加快视图绘制,提高UI性能。

3.Viewstub:延迟加载的作用,减少资源的损耗。

三.使用场景:

1.include:各种可以复用的布局,如标题栏。

2.merge:

(1)根布局是FrameLayout且不需要设置background或padding等属性,可以用merge代替,因为Activity的ContentView父元素就是FrameLayout,所以可以用merge消除只剩一个。

(2)某布局作为子布局被其他布局include时,使用merge当作该布局的顶节点,这样在被引入时顶结点会自动被忽略,而将其子节点全部合并到主布局中。

(3)自定义View如果继承LinearLayout(ViewGroup),建议让自定义View的布局文件根布局设置成merge,这样能少一层结点。

3.Viewstub:各种不常用的布局可以使用这样的方式,例如未登录、无网络、空数据等布局。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值