RelativeLayout和LinearLayout

1、

界面



列表一的布局:根布局用了RelativeLayout



列表二的布局:


布局文件:



层级关系是并列的



列表1的嵌套比较严重,列表二比较扁平,列表二性能比较好

2、

DecorView使用的是线性布局。虽然Relativelayout的测量效率一般,测量效率不如线性布局那样好。

界面:


选中相对布局:



点击出现数据分析

测量耗时是0.17ms


②线性布局耗时:0.117ms



出现这种情况的原因是:RelativeLayout的子view的排列方式是基于彼此的依赖关系,而依赖关系可能和在子view在布局中的排列顺序并不相同,在确定子每个view的顺序的时候,需要给所有的子view进行排序,又因为相对布局允许A和B两个子view允许横向的B依赖于A,但是纵向A又依赖于B这种关系,所以需要在横向和纵向上进行一次分别测量。但是线性布局不存在这样的问题,线性布局有一个oritention的属性,在使用的时候需要先给这个属性进行赋值,这个值有两个,一个是horizontal,一个是vertical。如果是vertical,只需要在同一方向上进行纵向测量,如果是横向布局,只需要在横向上进行一次测量。这也就解释了为什么线性布局的测量会高于相对布局。如果线性布局设置了weight属性的话,也会进行两次测量。这是因为它会先避开设置过weight属性的view对其它view进行第一次测量,测量过后会把剩余的空间都给设置了weight属性的view进行第二次测量。这就是相对布局和线性布局在测量方式上存在区别的地方。


3、布局比较



4、


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值