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以优化此问题。

相关推荐
mmsx13 小时前
基于 Android 的博物馆文化展示与预约 App —— 设计与实现(有源码和文档)
android·app·源码·文档
一笑的小酒馆14 小时前
AndroidAGP9.0升级之路
android
阮胜昌14 小时前
MySQL 中的动态数据脱敏:无需更改应用程序即可保护敏感数据
android·mysql·adb
aaajj16 小时前
关于MODIFY_PHONE_STATE权限
android
古法安卓17 小时前
Android-高版本 LMKD 源码解析:基于 PSI 的内存压力监控与查杀全流程
android·java·android studio
古法安卓17 小时前
Android-PSI 详解:libpsi 源码解析——116 行代码架起 lmkd 与内核之间的桥
android·java·android studio
mmsx20 小时前
Android 新闻资讯客户端实战:从零搭建一个完整的新闻 App
android·app·源码
三8441 天前
PHP 绕过污点追踪构造 Webshell:反序列化引用复用与 Trait 可变函数 RCE
android
石头猫灯1 天前
WordPress wp2shell漏洞断点逐过程到注入点
android·学习
Android打工仔1 天前
Kotlin 协程源码解析(五):BaseContinuationImpl.resumeWith() —— Continuation 链是如何被展开的?
android·kotlin