Android四种常用布局(LinearLayout/FrameLayout/RelativeLayout/TableLayout)

15 阅读3分钟

一、运行环境说明

- 开发工具:Android Studio
- 运行设备:Small Phone API 36.0 模拟器
- 项目路径:纯英文无空格路径(避免Gradle同步报错)

二、四种常用布局详细介绍

1. LinearLayout(线性布局)

(1)布局特点 LinearLayout是Android中最基础、最常用的布局之一,核心特点是子控件按照水平(horizontal)或垂直(vertical)的线性方向依次排列,所有子控件会排成一行或一列,不会换行/换列
(2)核心常用属性 - android:orientation:指定排列方向,horizontal为水平从左到右,vertical为垂直从上到下。 - android:layout_weight:按比例分配剩余空间,常用于适配不同屏幕尺寸。 - android:gravity:控制子控件在布局内的对齐方式(如居中、居左等)。 - android:layout_margin/android:padding:设置控件间距/内边距。
(3)适用场景 适合简单的线性界面,比如登录页的按钮垂直排列、导航栏的按钮水平排列、列表项的简单布局等。 (4)优缺点 ✅ 优点:简单易用、性能优秀、学习成本低,适合快速搭建简单界面。 ❌ 缺点:复杂界面需要多层嵌套,会降低布局性能,灵活性不足。
(5)项目运行截图

12.png

2. FrameLayout(帧布局)

(1)布局特点 FrameLayout是Android中最简单的布局,核心特点是所有子控件默认堆叠在布局的左上角,后添加的控件会覆盖在先添加的控件上方,类似“叠帧”的效果,也叫帧布局。
(2)核心常用属性 - android:layout_gravity:指定子控件在FrameLayout中的位置(如居中、右下角、居左等)。 - android:background:设置布局/控件的背景色,用于实现叠层效果。
(3)适用场景 适合需要叠层效果的界面,比如图片上叠加文字/按钮、Fragment容器、自定义控件的背景层、霓虹灯/嵌套方块效果(本次NeonLamp项目就是典型应用)。
(4)优缺点 ✅ 优点:性能最优、布局层级最少、实现简单,适合叠层场景。 ❌ 缺点:仅能通过layout_gravity控制位置,不适合多控件的规则排列,灵活性差。
(5)项目运行截图

22.png

3. RelativeLayout(相对布局)

(1)布局特点 RelativeLayout是灵活性极高的布局,核心特点是子控件可以相对于父布局,或者相对于其他控件来定位,可以灵活控制控件的位置,减少布局嵌套。
(2)核心常用属性 - 相对父布局定位:android:layout_alignParentTop(靠父布局顶部)、android:layout_centerInParent(在父布局居中)、android:layout_alignParentRight(靠父布局右侧)等。 - 相对其他控件定位:android:layout_toRightOf="@id/控件ID"(在指定控件右侧)、android:layout_below="@id/控件ID"(在指定控件下方)、android:layout_alignLeft="@id/控件ID"(与指定控件左对齐)等。
(3)适用场景 适合复杂、灵活的界面,比如首页卡片布局、自定义控件内部布局、需要灵活对齐的界面等。
(4)优缺点 ✅ 优点:布局层级少、性能优秀、灵活性极高,能实现复杂界面。 ❌ 缺点:属性多、学习成本高,容易出现控件错位、依赖混乱的问题。
(5)项目运行截图

32.png

4. TableLayout(表格布局)

(1)布局特点 TableLayout是表格形式的布局,核心特点是以行(TableRow)和列的形式排列子控件,自动将控件分配到表格的单元格中,实现整齐的表格效果。
(2)核心常用属性 - android:stretchColumns:拉伸指定列(索引从0开始),让列填满剩余空间。 - android:shrinkColumns:收缩指定列,适配屏幕宽度。 - android:collapseColumns:隐藏指定列。 - TableRow:定义表格的一行,行内的控件自动对应一列。
(3)适用场景 适合表格类界面,比如设置页的选项列表、表单、通讯录、数据表格等。
(4)优缺点 ✅ 优点:天然适合表格布局、对齐整齐、实现简单。 ❌ 缺点:灵活性差,不适合复杂界面,嵌套会降低性能。
(5)项目运行截图

42.png