Skip to content

布局

布局管理器

双标签容器,可以嵌套其它组件。 包括框架、线性、相对、表格和网格布局。另有绝对布局已淘汰。

LinearLayout 线性布局

所有子元素在水平或垂直方向依次排列,子组件高度或宽度超过父容器时会溢出不显示

常用属性

  • orientation
  • gravity
  • layout_gravity
  • background
  • layout_width/layout_height
  • weight:宽度/高度权重

约束布局

标签名为androidx.constraintlayout.widget.ConstraintLayout

api文档:ConstraintLayout | API reference | Android Developers

控件之间、控件与父布局之间具有约束关系,控件的位置按照约束计算,可以按比例约束控件的位置和尺寸。 约束布局最主要的参照是四条边,即leftrighttopbuttom,除此以外还有文字基准线(baseline),用于对其文字;startend,和左右类似但是相对参照。

存在相悖的约束时,后定义的会覆盖先定义的。

子元素常用属性

  • id:约束布局中作为基准的元素必须定义id,值的格式为"@+id/具体的id"
  • app:layoout_constraintLeft_toRightOf:当前控件的左边框对齐某个控件的右边框,值为被对齐的边框的id,属性中的参照均可按情况更改为上下左右和基准线 如果把四边的对齐都设置为parent,则代表在父级中居中。其余情况只需要保证上下和左右各有一边对齐即可。
  • android:layout_marginBottom:元素下边缘和相对对齐位置的偏移,属性中的方向均可按情况更改为上下左右和基准线。 其值是一个带单位的数值,不能是负数。

约束链

提供了以下属性:

  • android:layout_constraintHorizontal_chainStyle: 该属性只需要在约束链的首个元素中设置,根据约束的方向更改HerizontalVertical

布局嵌套

有如下规则:

  • 布局管理器需包含且必须包含xmlns属性
  • 一个布局文件中有且仅有一个根布局管理器,也就是一个xmlns属性。
  • 嵌套层次不建议超过5,过深的嵌套会影响性能。