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

相关推荐
开维游戏引擎20 小时前
AI自动生成游戏时,deepseek和mimo对比
android·游戏·语言模型·游戏引擎·ai编程
BreezeDove1 天前
【Android】AS项目自动连接mumu模拟器配置
android
乐世东方客1 天前
备份脚本记录(binlog文件+mysql+mongo)
android·数据库·mysql
私人珍藏库1 天前
[Android] 视频下载鸟 v20.02 会员
android·人工智能·智能手机·app·工具·多功能
zh_xuan1 天前
tv浏览网页工具
android·tv浏览网页
Carson带你学Android1 天前
Compose 终于上线 FlexBox:换行与弹性伸缩 都轻松搞定!
android·composer
私人珍藏库1 天前
[Android] 三维山水全景地图-3D地形全景观测地图
android·3d·app·工具·软件·多功能
dengyuezhe80601 天前
《C++ 异常机制与智能指针:从原理到实现》
android·java·c++
Wonderful U1 天前
Python+Django实战|企业办公用品申领管理系统:物资入库、库存预警、申领审批、归还登记、损耗统计、供应商对账
android·python·django
plainGeekDev1 天前
网络状态监听 → ConnectivityManager + Flow
android·java·kotlin