Android 四种常用布局资源详解
一、整体说明
四个图片的布局分别为:线性布局、相对布局、表格布局、约束布局。
二、LinearLayout(线性布局)
1. 核心特性
- 基础布局,子控件沿水平或垂直方向线性排列,无自动换行。
- 核心属性:
android:orientation(方向)、android:layout_weight(权重,按比例分配空间)。 - 支持子控件对齐、间距设置,结构简单,学习成本低。
2. 项目运行效果
从截图可见,界面包含三个按钮,沿水平方向均匀排列,整体宽度均分,布局层级扁平化,无嵌套。
3. 核心用法
- 方向设置:
vertical(垂直)/horizontal(水平)。 - 权重适配:子控件设置
layout_weight,实现剩余空间按比例分配,是屏幕适配的常用方式。
4. 适用场景
简单线性界面(按钮组、登录表单、列表项)、需要按比例划分空间的场景。
5. 优缺点
- 优点:简单易用、逻辑清晰、适配性好。
- 缺点:复杂界面需多层嵌套,会降低渲染性能。
三、RelativeLayout(相对布局)
1. 核心特性
- 子控件通过相对位置定位,参照物为父布局或其他控件。
- 无需嵌套即可实现复杂排版,减少布局层级。
- 核心属性:
layout_centerInParent(居中)、layout_below(在下方)、layout_toLeftOf(在左侧)等。
2. 项目运行效果
截图中三个按钮呈垂直分布,按钮2在按钮3下方,按钮1在按钮2下方,所有控件均通过相对位置关联,无固定坐标。
3. 核心用法
- 父布局对齐:居中、顶部、底部、左右对齐。
- 控件间对齐:上下左右、边缘对齐,通过控件ID实现关联。
4. 适用场景
控件位置相互依赖的界面(头像+用户名、表单标签+输入框)、替代多层嵌套的线性布局。
5. 优缺点
- 优点:减少嵌套、结构简洁。
- 缺点:复杂约束下计算效率低,现代开发中逐步被约束布局替代。
四、TableLayout(表格布局)
1. 核心特性
- 仿表格结构,以行为单位组织控件,自动生成列并保持列宽统一。
- 核心组件:
TableLayout(外层容器)、TableRow(行容器)。 - 核心属性:
stretchColumns(可拉伸列)、shrinkColumns(可收缩列)。
2. 项目运行效果
截图中五个按钮按行列排列,第一行两个按钮,第二、三行各一个按钮,所有列自动对齐,界面规整,符合表格排版逻辑。
3. 核心用法
- 行内添加控件,自动分列;列数由控件最多的行决定。
- 支持列拉伸/收缩,适配不同屏幕宽度。
4. 适用场景
登录注册表单、设置页面、个人信息页、数据展示类规整界面。
5. 优缺点
- 优点:排版整齐、自动对齐、使用简单。
- 缺点:灵活性差、复杂界面适配能力弱。
五、ConstraintLayout(约束布局)
1. 核心特性
- Android官方推荐首选布局,功能最强大、性能最优。
- 通过约束条件定位控件(上下左右、居中、比例、链),实现完全扁平化布局。
- 支持可视化拖拽编辑、宽高比设置、链式排列、百分比定位等高级功能。
2. 项目运行效果
截图中为彩色方块层叠效果,所有控件通过约束条件精准定位,无嵌套,布局层级最少,适配性极强。
3. 核心用法
- 基础约束:左右上下边缘对齐父布局或其他控件。
- 高级功能:
0dp(按约束填充)、宽高比、链式排列、辅助线定位。
4. 适用场景
所有复杂界面(APP首页、详情页、商品卡片)、需要高精度适配、扁平化布局的项目。
5. 优缺点
- 优点:扁平化无嵌套、性能高、适配能力强、支持可视化开发。
- 缺点:入门学习成本略高。