一、线性布局(LinearLayout)
线性布局是 Android 中最基础、最常用的布局类型,它的核心规则是:所有子控件按照单一方向进行有序排列,不会自动换行。
线性布局可以指定水平或垂直两种排列方向,水平排列时,控件从左到右依次摆放;垂直排列时,控件从上到下依次摆放。它最大的优势是结构简单、易于理解和控制,非常适合规整的线性界面排版。
同时,线性布局支持权重属性,这是它独有的核心功能,可以让子控件按照比例分配父布局的剩余空间,实现等比例、自适应的界面效果,比如平分屏幕宽度的按钮、按比例分配的导航栏等。
它的局限性也很明显,只能实现单向排列,无法处理复杂的相对位置关系,遇到不规则界面时需要多层嵌套,会增加布局复杂度。
适用场景:表单界面、列表项、导航栏、按钮组、简单的垂直 / 水平排版界面。
二、相对布局(RelativeLayout)
相对布局是一种以位置关系为核心的布局,它不限制固定的排列方向,所有子控件都可以相对于父布局、或者相对于其他控件进行定位。
相对布局的灵活性极高,子控件可以设置居中、靠顶、靠底、靠右,也可以设置在另一个控件的上方、下方、左侧、右侧,还能实现与其他控件对齐等效果。在开发复杂界面时,相对布局可以大幅减少布局嵌套层数,让界面结构更简洁。
它的特点是没有固定的排列规则,完全由位置属性控制,适合实现多样化、非规整的界面。相比线性布局,它能完成更复杂的 UI 设计,但理解成本会稍高一些。
适用场景:登录页面、个人中心、详情页、需要灵活定位控件的复杂界面。
三、表格布局(TableLayout)
表格布局是按照行和列的形式组织控件的布局,结构和我们日常使用的表格完全一致,由行和单元格组成,排版整齐规范。
表格布局以行为单位,每一行使用表格行容器包裹子控件,列数由包含控件最多的那一行决定,所有列会自动对齐,界面规整统一。它支持列拉伸、列收缩、单元格合并等功能,能快速实现规整的表格类界面。
它的局限性是灵活性较差,只能按照固定行列排版,不适合不规则、自由定位的界面设计,适用场景比较专一。
适用场景:计算器界面、数据统计表、日历、表单表格、规整的网格类界面。
四、框架布局(FrameLayout)
框架布局是 Android 中最简单、层级最扁平化的布局,也是最常用的容器布局之一,它的核心特点是:所有子控件默认叠加在布局的左上角。
框架布局不会为子控件提供复杂的排列规则,控件之间可以相互重叠,通过简单的对齐属性(居中、靠下、靠右等),就能调整控件的叠加位置。它的布局效率极高,渲染速度快,非常适合作为容器使用,嵌套其他布局或控件。
在实际开发中,框架布局常用来实现叠加效果,比如图片上覆盖文字、按钮上覆盖角标、加载动画覆盖在界面上方等,也常作为碎片(Fragment)的容器使用。
适用场景:图片叠加层、角标、加载动画、碎片容器、简单的叠加式界面。