结合4个项目比较详细地介绍下其中布局资源的四种常用类型。

1 阅读3分钟

Android 四种常用布局资源详解

一、整体说明

四个图片的布局分别为:线性布局、相对布局、表格布局、约束布局。

二、LinearLayout(线性布局)

1.png

1. 核心特性

  • 基础布局,子控件沿水平垂直方向线性排列,无自动换行。
  • 核心属性:android:orientation(方向)、android:layout_weight(权重,按比例分配空间)。
  • 支持子控件对齐、间距设置,结构简单,学习成本低。

2. 项目运行效果

从截图可见,界面包含三个按钮,沿水平方向均匀排列,整体宽度均分,布局层级扁平化,无嵌套。

3. 核心用法

  • 方向设置:vertical(垂直)/ horizontal(水平)。
  • 权重适配:子控件设置layout_weight,实现剩余空间按比例分配,是屏幕适配的常用方式。

4. 适用场景

简单线性界面(按钮组、登录表单、列表项)、需要按比例划分空间的场景。

5. 优缺点

  • 优点:简单易用、逻辑清晰、适配性好。
  • 缺点:复杂界面需多层嵌套,会降低渲染性能。

三、RelativeLayout(相对布局)

2.png

1. 核心特性

  • 子控件通过相对位置定位,参照物为父布局或其他控件。
  • 无需嵌套即可实现复杂排版,减少布局层级。
  • 核心属性:layout_centerInParent(居中)、layout_below(在下方)、layout_toLeftOf(在左侧)等。

2. 项目运行效果

截图中三个按钮呈垂直分布,按钮2在按钮3下方,按钮1在按钮2下方,所有控件均通过相对位置关联,无固定坐标。

3. 核心用法

  • 父布局对齐:居中、顶部、底部、左右对齐。
  • 控件间对齐:上下左右、边缘对齐,通过控件ID实现关联。

4. 适用场景

控件位置相互依赖的界面(头像+用户名、表单标签+输入框)、替代多层嵌套的线性布局。

5. 优缺点

  • 优点:减少嵌套、结构简洁。
  • 缺点:复杂约束下计算效率低,现代开发中逐步被约束布局替代。

四、TableLayout(表格布局)

3.png

1. 核心特性

  • 仿表格结构,以为单位组织控件,自动生成列并保持列宽统一。
  • 核心组件:TableLayout(外层容器)、TableRow(行容器)。
  • 核心属性:stretchColumns(可拉伸列)、shrinkColumns(可收缩列)。

2. 项目运行效果

截图中五个按钮按行列排列,第一行两个按钮,第二、三行各一个按钮,所有列自动对齐,界面规整,符合表格排版逻辑。

3. 核心用法

  • 行内添加控件,自动分列;列数由控件最多的行决定。
  • 支持列拉伸/收缩,适配不同屏幕宽度。

4. 适用场景

登录注册表单、设置页面、个人信息页、数据展示类规整界面。

5. 优缺点

  • 优点:排版整齐、自动对齐、使用简单。
  • 缺点:灵活性差、复杂界面适配能力弱。

五、ConstraintLayout(约束布局)

4.png

1. 核心特性

  • Android官方推荐首选布局,功能最强大、性能最优。
  • 通过约束条件定位控件(上下左右、居中、比例、链),实现完全扁平化布局。
  • 支持可视化拖拽编辑、宽高比设置、链式排列、百分比定位等高级功能。

2. 项目运行效果

截图中为彩色方块层叠效果,所有控件通过约束条件精准定位,无嵌套,布局层级最少,适配性极强。

3. 核心用法

  • 基础约束:左右上下边缘对齐父布局或其他控件。
  • 高级功能:0dp(按约束填充)、宽高比、链式排列、辅助线定位。

4. 适用场景

所有复杂界面(APP首页、详情页、商品卡片)、需要高精度适配、扁平化布局的项目。

5. 优缺点

  • 优点:扁平化无嵌套、性能高、适配能力强、支持可视化开发。
  • 缺点:入门学习成本略高。