安卓开发的常用类型布局资源

12 阅读1分钟

1. LinearLayout(线性布局)

基本概念

按照一个方向排列子控件

<LinearLayout
    android:orientation="vertical">

    <TextView />
    <Button />

</LinearLayout>

核心属性详解

① orientation(方向)

vertical / horizontal

② layout_weight(权重 重点)

android:layout_weight="1"

用于按比例分配剩余空间

优缺点

优点:

  • 简单直观
  • 易于实现等分布局

缺点:

  • 嵌套多 → 性能差

2. RelativeLayout(相对布局)

核心思想

子控件通过“相对位置”排列


示例

<RelativeLayout>

    <Button
        android:id="@+id/btn1"/>

    <TextView
        android:layout_below="@id/btn1"/>

</RelativeLayout>

优缺点

优点:

  • 比 LinearLayout 更灵活
  • 减少嵌套

缺点:

  • 规则复杂
  • 多控件维护困难

3. ConstraintLayout(约束布局)

Google 官方推荐,现代开发必备


核心思想

通过“约束关系”确定位置,而不是嵌套


示例

<Button
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"/>

核心概念详解

① Constraint(约束)

每个控件必须:

  • 至少一个水平约束
  • 至少一个垂直约束

② Bias(偏移)

app:layout_constraintHorizontal_bias="0.3"

控制位置偏移(0~1)


③ Chain(链)

多个控件均分空间

app:layout_constraintHorizontal_chainStyle="spread"

④ Guideline(参考线)

<androidx.constraintlayout.widget.Guideline
    app:layout_constraintGuide_percent="0.3"/>

⑤ Match Constraint(0dp)

android:layout_width="0dp"

表示“填充约束范围”


优缺点

优点:

  • 减少嵌套(性能更好)
  • 灵活性极高
  • 支持复杂 UI

缺点:

  • 学习成本高

4. FrameLayout(帧布局)

核心特点

子控件“叠加显示”


示例

<FrameLayout>

    <ImageView />
    <TextView />

</FrameLayout>

TextView 会覆盖 ImageView


常见用途

  • Fragment 容器
  • 视频播放界面
  • 悬浮按钮

优缺点

优点:

  • 简单
  • 适合叠加 UI

缺点:

  • 不适合复杂布局