1. LinearLayout 线性布局(最基础、最常用)
官方定义
子控件按照 水平 或 垂直 方向排成一条直线,像排队一样。
核心属性
-
android:orientationvertical:垂直排列(从上到下)horizontal:水平排列(从左到右)
-
android:layout_weight(权重,最重要)- 用来平分剩余空间
- 数值越大,占的位置越多
- 使用时对应方向的宽度 / 高度要设为
0dp
-
android:gravity控制子控件在布局内的对齐方式:center:居中left/righttop/bottom
-
android:layout_gravity控制自己在父布局中的对齐方式
优点
- 最简单、最容易上手
- 结构清晰,适合线性排列
缺点
- 复杂界面需要多层嵌套,性能差
- 无法实现不规则对齐
适用场景
- 单行按钮
- 垂直列表条目
- 简单表单
- 需要平分空间的界面
2. FrameLayout 帧布局(最简单、效率最高)
官方定义
所有子控件默认叠加在左上角,像叠卡片一样。
核心特点
- 后添加的控件会覆盖在先添加的控件之上
- 布局计算最快,性能最高
- 几乎没有复杂属性
常用属性
layout_gravity:控制控件在布局中的位置foreground:前景图
优点
- 性能最高
- 代码最简单
缺点
- 只能叠加,不能复杂排列
适用场景
- Fragment 容器
- 图片叠加
- 加载动画
- 单个控件展示
- 视频播放界面
3. RelativeLayout 相对布局(最灵活)
官方定义
子控件以其他控件 或 父布局为参照物进行定位。
核心属性
相对于父布局
layout_centerInParent居中layout_alignParentTop贴顶部layout_alignParentBottom贴底部layout_alignParentLeft贴左边
相对于其他控件
layout_toRightOf在某控件右边layout_toLeftOf在某控件左边layout_below在某控件下方layout_above在某控件上方layout_alignTop与某控件顶部对齐
优点
- 非常灵活
- 减少嵌套,性能比 LinearLayout 好
缺点
- 属性多,新手容易记混
- 过于复杂的界面写起来麻烦
适用场景
- 登录界面(按钮在输入框下方)
- 不规则对齐的控件
- 不需要嵌套就能完成的界面
4. TableLayout(表格布局)
- 继承自 LinearLayout,以行和列的表格形式排列控件。
- 用
<TableRow>标签定义一行,每个子控件代表一列。 - 适合做表单、数据表格类界面(比如登录页的输入框 + 标签对齐)。