一.表格布局 TableLayout
表格布局继承自线性布局,以 “行 + 列” 的表格形式管理子控件,对应本次TableLayout项目。
- 核心特性 表格布局遵循标准表格结构:TableLayout为表格容器,TableRow为行容器,行内每个控件对应一列,列数由每行最多控件数决定,自动对齐列边界。其支持列的拉伸、收缩、隐藏,可自动适配内容与屏幕宽度,实现规整的网格布局。
- 项目运行效果 项目中按钮以表格形式排列:第一行 2 个按钮,第二行 2 个按钮,第三行 1 个按钮,控件按行、列自动对齐,结构规整,符合表格布局的行列逻辑。
- 关键属性 • 表格容器属性:stretchColumns(拉伸指定列,填充剩余空间)、shrinkColumns(收缩指定列,适配屏幕宽度)、collapseColumns(隐藏指定列); • 子控件属性:layout_column(指定控件显示列)、layout_span(控件占据的列数,实现跨列效果)。
- 适用场景
计算器界面、表单表格、数据统计页、登录注册网格表单等需要规则行列对齐的场景,是表格类界面的最优选择。
二.帧布局 FrameLayout
帧布局是层级叠加型布局,本次NeonLamp项目是其典型应用,也是 Android 中性能开销最小的布局。
- 核心特性 帧布局为子控件开辟空白区域,所有控件默认叠加在布局左上角,后添加的控件会覆盖在先添加的控件之上,形成层级效果。其支持前景图像设置,前景图永远显示在所有子控件最上层,布局结构极简,渲染速度快。
- 项目运行效果 项目中通过多层不同颜色的矩形控件叠加,实现了红→绿→蓝→红的霓虹灯嵌套效果,后添加的小矩形覆盖在先添加的大矩形之上,完美体现了帧布局的层级叠加特性。
- 关键属性 • android:foreground:设置布局前景图像,覆盖所有子控件; • android:foregroundGravity:设置前景图像的显示位置(居中、左对齐等); • 通用属性:layout_width、layout_height、layout_gravity(控制子控件在布局中的位置)。
- 适用场景
霓虹灯叠加效果、卡片层叠、视频播放遮罩、Fragment 容器、图标角标等需要层级展示的场景,是 Fragment 容器的标准布局。
三.线性布局 LinearLayout
线性布局是 Android 最基础、使用频率最高的布局,也是本次LinearLayout项目的核心实现。
- 核心特性 线性布局以水平(horizontal)或垂直(vertical)方向,按控件添加顺序依次排列子元素,控件无重叠、无偏移,结构简洁直观,是入门级布局的首选。其核心优势是自带layout_weight(权重)属性,可按比例分配布局剩余空间,实现多设备屏幕适配。
- 项目运行效果 项目中三个按钮以水平方向线性排列,控件按添加顺序从左到右依次展示,界面结构规整,符合线性布局的排列逻辑。
- 关键属性 • android:orientation:设置排列方向,vertical为垂直从上到下,horizontal为水平从左到右; • android:layout_weight:权重属性,数值为整数,按数值比例分配剩余空间,使用权重时对应方向的宽 / 高需设为0dp,保证适配效果; • 通用属性:layout_width、layout_height、layout_margin、padding等,用于控制控件大小与边距。
- 适用场景 简单列表页、表单输入界面、按钮均分布局、导航栏等结构规整、无复杂定位的场景,是 Android 界面开发的基础布局。
四.相对布局 RelativeLayout
相对布局是灵活定位型布局,对应本次RelativeLayout项目,是复杂界面搭建的核心工具。
- 核心特性 相对布局摆脱了线性排列的限制,子控件可通过相对于父容器、相对于其他控件的方式定位,默认与父容器左上角对齐,需通过属性自定义位置。其核心优势是可减少布局嵌套层级,优化界面渲染性能,适配不规则的复杂界面结构。
- 项目运行效果 项目中三个按钮以相对位置定位:按钮 1 固定在父容器左下角,按钮 2 在按钮 1 上方,按钮 3 在按钮 2 上方,完全通过相对位置实现控件排布,无需依赖线性顺序。
- 关键属性 • 父容器相对定位:layout_centerInParent(居中)、layout_alignParentTop(顶部对齐)、layout_alignParentBottom(底部对齐)等; • 控件间相对定位:layout_below(在某控件下方)、layout_toRightOf(在某控件右侧)、layout_alignLeft(与某控件左对齐)等; • 支持多维度组合定位,满足复杂界面的个性化需求。
- 适用场景
音乐播放器界面、个人中心页、详情页、聊天界面等不规则、需要灵活定位的界面,是复杂 UI 开发的首选布局。
开发选择建议
- 简单规则界面:优先选择
LinearLayout,开发成本低、适配性好; - 复杂不规则界面:优先选择
RelativeLayout,灵活定位、减少嵌套; - 表格类规整界面:选择
TableLayout,自动对齐、适配行列需求; - 层级叠加场景:选择
FrameLayout,性能最优、结构简单; - 复杂界面可通过布局嵌套组合实现,如
LinearLayout嵌套RelativeLayout,兼顾结构与灵活性。