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

相关推荐
沐怡旸3 小时前
【底层机制】垃圾回收(GC)底层原理深度解析
android·面试
whatever who cares3 小时前
android/java中gson的用法
android·java·开发语言
用户0273851840263 小时前
【Android】活动的正/异常生命周期和启动模式、标志位详解
android
nono牛5 小时前
MTK平台详解`adb devices`输出的序列号组成
android·linux·adb·智能手机
zhangphil5 小时前
Android通过SQL查询trace分析进程启动线程总数量
android
下位子5 小时前
『OpenGL学习滤镜相机』- Day3: 着色器基础 - GLSL 语言
android·opengl
bqliang5 小时前
Jetpack Navigation 3:领航未来
android·android studio·android jetpack
云存储小天使5 小时前
安卓蛙、苹果蛙为什么难互通?
android
陈大头铃儿响叮当8 小时前
Android Studio升级后,Flutter运行android设备报错
android·flutter·android studio
勤劳打代码8 小时前
isar_flutter_libs 引发 Namespace not specified
android·flutter·groovy