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

22 阅读2分钟

一、LinearLayout(线性布局)

📸 实际项目示例

项目名称:LinearLayout 运行效果:3 个按钮(按钮 1、按钮 2、按钮 3)在顶部水平并排排列

核心特点

  • 子视图按照单一方向线性排列
  • 支持 ** 水平(horizontal)垂直(vertical)** 两种方向
  • 子视图依次排列,不会重叠

关键属性详解

1. 方向控制

android:orientation="horizontal"  <!-- 水平排列 -->
android:orientation="vertical"    <!-- 垂直排列 -->

2. 权重分配(重要)

android:layout_weight="1"  <!-- 子视图按权重分配空间 -->

3. 重力控制

android:gravity="center"           <!-- 子视图在容器内对齐 -->
android:layout_gravity="center"    <!-- 自身在父容器中的对齐 -->

屏幕截图 2026-03-27 115723.png

二、RelativeLayout(相对布局)

📸 实际项目示例

项目名称:RelativeLayout运行效果:"按钮 3" 在偏右上区域,"按钮 2" 在 "按钮 3" 的左下方

核心特点

  • 子视图通过相对位置关系进行定位
  • 可以相对于父容器或其他子视图定位
  • 支持复杂的对齐和位置关系

关键属性详解

1. 相对于父容器定位

<!-- 相对父容器中心 -->
android:layout_centerInParent="true"

<!-- 相对父容器边缘 -->
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"

2. 相对于其他视图定位

<!-- 相对位置 -->
android:layout_above="@id/button3"        <!-- 在某视图上方 -->
android:layout_below="@id/button3"        <!-- 在某视图下方 -->
android:layout_toLeftOf="@id/button3"     <!-- 在某视图左侧 -->
android:layout_toRightOf="@id/button3"    <!-- 在某视图右侧 -->

<!-- 边缘对齐 -->
android:layout_alignTop="@id/button3"     <!-- 顶部对齐 -->
android:layout_alignBottom="@id/button3"  <!-- 底部对齐 -->
android:layout_alignLeft="@id/button3"    <!-- 左侧对齐 -->
android:layout_alignRight="@id/button3"   <!-- 右侧对齐 -->

屏幕截图 2026-03-27 115355.png

三、FrameLayout(帧布局)

📸 实际项目示例

项目名称:NeonLamp(霓虹灯效果)运行效果:多层嵌套的色块(红→绿→蓝→红→深色),演示了布局的嵌套层级

核心特点

  • 最简单的布局类型
  • 子视图按顺序堆叠显示
  • 所有子视图默认从左上角开始
  • 后添加的视图会覆盖在前面的视图之上

关键属性详解

1. 子视图位置控制

android:layout_gravity="center"           <!-- 子视图居中 -->
android:layout_gravity="bottom|right"     <!-- 子视图在右下角 -->

2. 常用组合

android:layout_gravity="center"           <!-- 完全居中 -->
android:layout_gravity="top|center_horizontal"  <!-- 顶部居中 -->

屏幕截图 2026-03-27 115542.png

四、TableLayout(表格布局)

📸 实际项目示例

项目名称:TableLayout运行效果:5 个按钮按表格排列(第 1 行:按钮 1、按钮 2;第 2 行:按钮 3、按钮 4;第 3 行:按钮 5)

核心特点

  • 采用表格形式组织子视图
  • 通过 TableRow 定义行
  • 类似 HTML 表格的行列结构

关键属性详解

1. TableLayout 属性

<!-- 列伸缩 -->
android:stretchColumns="1"        <!-- 第2列伸缩(索引从0开始) -->
android:stretchColumns="*"        <!-- 所有列伸缩 -->

<!-- 列收缩 -->
android:shrinkColumns="0"         <!-- 第1列收缩 -->

<!-- 列隐藏 -->
android:collapseColumns="2"       <!-- 第3列隐藏 -->

2. TableRow 属性

<!-- 重力 -->
android:gravity="center"          <!-- 行内内容居中 -->

3. 单元格属性

<!-- 跨列 -->
android:layout_span="2"           <!-- 跨2列 -->

<!-- 跨行 -->
android:layout_span="2"           <!-- TableRow不支持跨行 -->

屏幕截图 2026-03-27 115159.png