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

相关推荐
星间都市山脉2 小时前
Android16 SystemService.onBootPhase 调用时机
android·java·linux·windows·ubuntu
swithun2 小时前
不用 WebView,我用 Kotlin + Compose Multiplatform 重写 Mermaid,并做了 2048 组对拍
android·开源·kotlin
AI吃大瓜2 小时前
人脸检测和行人检测4:Android实现YOLOv8 YOLO11 YOLO26人脸检测和人体检测(含源码,可实时检测)
android·yolo·人脸检测·人体检测·行人检测·yolo26
与海boy2 小时前
Prompt模版
android·prompt
FlightYe2 小时前
音视频修炼之编码器(一):AVC、HEVC编码器内部
android·linux·c++·音视频
智购科技无人售货机工厂3 小时前
2026自动售货机AI智能体架构:从47个小模型到33.7亿Token的工程实践~YH
android·人工智能·驱动开发·单片机·pandas
嵩风抚4 小时前
一款HK银行APP的业务+技术
android·flutter·react native·html5
00后程序员张6 小时前
怎么用 Egret(白鹭引擎)打包 iOS 应用并上架 App Store?
android·ios·小程序·https·uni-app·iphone·webview
mmsx6 小时前
MapLibre 实战 09|Bug 单写着"地图被风刮走了":一个瓦片源工厂,是三个线上事故换来的
android·前端·开源
一技安身6 小时前
【信创】统信UOS 银河麒麟离线部署Python3.11完整方案
android·java·python3.11