安卓开发中常用的四种布局资源

1 阅读3分钟
  1. LinearLayout(线性布局) 特点: 将所有子视图按照水平或垂直方向线性排列。 通过 orientation 属性指定排列方向。 支持 layout_weight(权重)属性,用于按比例分配父容器的剩余空间。 如果嵌套过多,可能导致性能下降。 核心属性: orientation:设置为 horizontal(水平)或 vertical(垂直)。 gravity:控制子视图在布局内的对齐方式。 layout_weight:分配剩余空间的比例,通常配合宽度或高度设为 0dp 使用。 适用场景: 简单的表单布局,如登录界面中的输入框和按钮。 横向或纵向的工具栏。 使用权重实现等比例分割屏幕的布局。
  2. RelativeLayout(相对布局) 特点: 子视图通过相对位置进行定位,可以相对于父容器,也可以相对于其他兄弟视图。 布局灵活性高,能够减少不必要的布局嵌套。 从 Android 7.0(API 24)开始,Google 更推荐使用 ConstraintLayout,但 RelativeLayout 在简单场景中仍然适用。 核心属性: 相对于父容器的属性:layout_alignParentTop、layout_centerHorizontal、layout_centerInParent 等。 相对于其他控件的属性:layout_toRightOf、layout_below、layout_alignStart 等。 适用场景: 需要控件之间精确相对定位的界面,例如标题栏居中、按钮位于某个控件下方。 在不引入复杂约束的前提下,希望减少布局层级。
  3. ConstraintLayout(约束布局) 特点: 通过约束(constraints)定义每个子视图的位置关系,类似于 RelativeLayout 的升级版。 支持完全扁平化布局,避免了多层嵌套导致的性能问题。 与 Android Studio 的可视化编辑器配合良好,支持拖拽式设计。 提供链条(Chains)、屏障(Barriers)、引导线(Guidelines)等高级功能,方便实现复杂布局和响应式设计。 核心属性: 约束类属性,如 layout_constraintStart_toStartOf、layout_constraintTop_toBottomOf 等。 偏移量:layout_constraintHorizontal_bias、layout_constraintVertical_bias 控制视图在约束空间中的位置比例。 链条样式:layout_constraintHorizontal_chainStyle 等,用于控制一组控件在链条中的分布方式。 适用场景: 现代 Android 应用的根布局首选。 界面复杂但要求布局扁平化、性能较高的场景。 需要适配不同屏幕尺寸的响应式界面。
  4. FrameLayout(帧布局) 特点: 最简单的布局容器,所有子视图默认堆叠在左上角,后添加的视图会覆盖在前面的视图之上。 可以通过 layout_gravity 属性调整子视图在容器内的位置。 通常只包含一个子视图,常用于作为 Fragment 的容器,或用于实现简单的叠加效果。 核心属性: foreground:设置前景图形(如遮罩)。 foregroundGravity:设置前景图形的对齐方式。 适用场景: 作为 Fragment 的容器,例如在 Activity 中动态替换 Fragment。 实现叠加效果,如图片上方显示文字。 需要简单堆叠但不需要自动排列布局的场景。

下面是四种布局资源的实例图:

54c4bd2e8fb0f6b09206652a6a24bad.png

d36f4175e5df5240789bcb186d94578.png

54d003c2d407058368d1c0424f512a0.png

d63b03e6050c2fb7360fda7b5ccd8ae.png