LinearLayout和RelativeLayout对比

LinearLayout和RelativeLayout是Android中应用最为广泛的两种布局, 绝大部分UI均可以通过两种布局中的任何一种进行实现,其对比如下:
LinearLayout:

  1. LinearLayout可以实现子View按照权重分配显示区域,RelativeLayout则不行。

  2. 实现复杂的UI布局,LinearLayout通常需要更多的布局层级

  3. 相同UI同等层级情况下LinearLayout通常layout和draw性能更好。这是因为而LinearLayout只需调用一次measure过程,而RelativeLayout会调用2次。但是有weight属性存在时,LinearLayout 也需要两次measure。

RelativeLayout:

  1. RelativeLayout可以实现分层布局,LinearLayout则不行。使用RelativeLayout时需注意上层的view可能不遮挡遮挡下层View的展示,但遮挡其点击事件。

  2. RelativeLayout的在复杂嵌套布局中,可以降低布局嵌套层级 。

  3. RelativeLayout的子View如果高度和RelativeLayout不同,会导致RelativeLayout在onMeasure()方法中做横向测量时,纵向的测量结果尚未完成,只好暂时使用自己的高度传入子View系统。这可能会导致额外的计算开销。解决办法就是可以使用padding代替margin以优化此问题。

相关推荐
诸神黄昏EX2 分钟前
Android Safety 系列专题【篇二:AVB签名】
android
2601_949543014 分钟前
Flutter for OpenHarmony垃圾分类指南App实战:意见反馈实现
android·flutter
urkay-42 分钟前
Android 中实现 HMAC-SHA256
android·开发语言·python
YIN_尹1 小时前
【MySQL】增删查改的艺术——数据库CRUD完全指南(下)
android·数据库·mysql
m0_748233171 小时前
PHP8.0新特性全解析
android
一起养小猫1 小时前
Flutter for OpenHarmony 实战:从零开发一款五子棋游戏
android·前端·javascript·flutter·游戏·harmonyos
●VON2 小时前
从像素到语义:React Native Text 组件在 OpenHarmony 上的渲染哲学与工程实现
android·react native·react.js
henysugar2 小时前
Android studio编译aidl若干问题记录
android·ide·android studio·aidl
阿斌_bingyu7092 小时前
FastAdmin 混合式语言包添加繁体中文(zh-tw)完整教程
android·ide
CreeLu2 小时前
Android抓取火焰图
android