Android常用的五种界面布局
布局的通用属性
Android系统提供的五种常用布局直接或者间接继承自ViewGroup,因此五种常用的布局也支持在ViewGroup中定义属性。
布局的通用属性
| 属性名称 | 功能描述 |
|---|
| android:id | 设置布局的标识 |
| android:layout_width | 设置布局的宽度 |
| android:layout_height | 设置布局的高度 |
| android:background | 设置布局背景 |
| android:layout_margin | 设置当前布局与屏幕边界或与周围控件的距离 |
| android:padding | 设置当前布局与该布局中控件的距离 |
RelativeLayout相对布局
RelativeLayout(相对布局)通过相对定位的方式指定子控件的位置。
RelativeLayout中子控件的属性
| 属性名称 | 功能描述 |
|---|
| android:layout_centerInParent | 设置当前控件位于父布局的中央位置 |
| android:layout_centerVertical | 设置当前控件位于父布局的垂直居中位置 |
| android:layout_centerHorizontal | 设置当前控件位于父控件的水平居中位置 |
| android:layout_above | 设置当前控件位于某控件上方 |
| android:layout_below | 设置当前控件位于某控件下方 |
| android:layout_toLeftOf | 设置当前控件位于某控件左侧 |
| android:layout_toRightOf | 设置当前控件位于某控件右侧 |
| android:layout_alignParentTop | 设置当前控件是否与父控件顶端对齐 |
| android:layout_alignParentLeft | 设置当前控件是否与父控件左对齐 |
| android:layout_alignParentRight | 设置当前控件是否与父控件右对齐 |
| android:layout_alignParentBottom | 设置当前控件是否与父控件底端对齐 |
| android:layout_alignTop | 设置当前控件上边界与某控件的上边界对齐 |
| android:layout_alignBottom | 设置当前控件下边界与某控件的下边界对齐 |
| android:layout_alignLeft | 设置当前控件左边界与某控件的左边界对齐 |
| android:layout_alignRight | 设置当前控件右边界与某控件的右边界对齐 |
LinearLayout线性布局
LinearLayout(线性布局)通常指定布局内的子控件水平或者竖直排列
LinearLayout布局常用属性
| 属性名称 | 功能描述 |
|---|
| android:orientation | 设置布局内控件的排列顺序 |
| android:layout_weight | 在布局内设置控件权重,属性值可直接写int值 |
TableLayout表格布局
TableLayout(表格布局)采用行、列的形式来管理控件,它不需要明确声明包括多少行、多少列,而是通过在TableLayout布局中添加TableRow布局或控件来控制表格的行数,可以在TableRow布局中添加控件来控制表格列数。
TableLayout布局的常用属性
| 属性名称 | 功能描述 |
|---|
| android:stretchColumns | 设置该列被拉伸 |
| android:shrinkColumns | 设置该列被收缩 |
| android:collapseColumns | 设置该列被隐藏 |
TableLayout布局中控件的常用的属性
| 属性名称 | 功能描述 |
|---|
| android:layout_columns | 设置该单元显示位置 |
| android:layout_span | 设置该单元格占据几行,默认为1行 |
FrameLayout帧布局
FrameLayout(帧布局)用于在屏幕上创建一块空白区域,添加到该区域的每个子控件占一帧,这些帧会一个一个叠加在一起,后加入的控件会叠加在上一个控件上层。
FrameLayout属性
| 属性名称 | 功能描述 |
|---|
| android:foreground | 设置帧布局容器的前景图像(始终在所有子控件之上) |
| android:foregroundGravity | 设置前景图像显示的位置 |
ConstraintLayout约束布局
ConstraintLayout是Android Q Studio 2.2新添加的布局
相对定位关系的属性
| 属性名称 | 功能描述 |
|---|
| android:constraintLeft_toLeftOf | 控件的左边与另外一个控件的左边对齐 |
| android:constraintLeft_toRightOf | 控件的左边与另外一个控件的右边对齐 |
| android:constraintRight_toLeftOf | 控件的右边与另外一个控件的左边对齐 |
| android:constraintRight_toRightOf | 控件的右边与另外一个控件的右边对齐 |
| android:constraintTop_toTopof | 控件的上边与另外一个控件的上边对齐 |
| android:constraintTop_toBottomOf | 控件的上边与另外一个控件的底边对齐 |
| android:constraintBaseline_toBaselineOf | 控件间的文本内容基准线对齐 |
| android:constraintStart_toEndOf | 控件的起始边与另外一个控件的尾部对齐 |
| android:constraintStart_toStartOf | 控件的起始边与另外一个控件的起始边对齐 |
| android:constraintEnd_toStartOf | 控件的尾部与另外一个控件的起始边对齐 |
| android:constraintEnd_toEndOf | 控件的尾部与另外一个控件的尾部对齐 |
倾向的属性
| 属性名称 | 功能描述 |
|---|
| layout_constraintHorizontal_bias | 横向的倾向 |
| layout_constraintVertical_bias | 纵向的倾向 |