Android常见界面布局
2.1 View视图
所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。
2.2 界面布局编写方式
- 在XML文件中编写布局:推荐此种方式布局
- 有效的将界面中布局的代码和Java代码隔离,使程序的结构更加清晰。
- 在Java代码中编写布局
- 在Android中所有布局和控件的对象都可以通过new关键字创建出来,将创建的View控件添加到ViewGroup布局中,从而实现View控件在布局界面中显示。
2.3 常见界面布局
2.3.1 布局的通用属性
属性名称 | 功能描述 |
---|---|
android:id | 设置布局的标识 |
android:layout_width | 设置布局的宽度 |
android: layout_height | 设置布局的宽度 |
android:background | 设置布局的背景 |
android:layout_margin | 设置当前布局与屏幕边界或与周围控件的距离 |
android:padding | 设置当前布局与该布局中控件的距离 |
2.3.2 相对布局—控件位置属性
控件属性 | 功能描述 |
---|---|
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 | 设置当前控件的右边界与某控件的右边界对齐 |
2.3.3 RelativeLayout相对布局
2.3.3 LinearLayout线性布局
LinearLayout布局中的android:layout_width属性值不可设为wrap_content。
这是因为LinearLayout的优先级比Button高,如果设置为wrap_content,则Button控件的android:layout_weight属性会失去作用。
当控件使用权重属性时,布局宽度属性值通常设置为0dp
2.3.4 TableLayout表格布局
2.3.5 FrameLayout帧布局
2.3.6 ConstraintLayout约束布局
2.3.6.1 约束布局—相对定位关系的属性
属性名称 | 功能描述 |
---|---|
layout_constraintLeft_toLeftOf | 控件的左边与另外一个控件的左边对齐 |
layout_constraintLeft_toRightOf | 控件的左边与另外一个控件的右边对齐 |
layout_constraintRight_toLeftOf | 控件的右边与另外一个控件的左边对齐 |
layout_constraintRight_toRightOf | 控件的右边与另外一个控件的右边对齐 |
layout_constraintTop_toTopOf | 控件的上边与另外一个控件的上边对齐 |
layout_constraintTop_toBottomOf | 控件的上边与另外一个控件的底部对齐 |
layout_constraintBaseline_toBaselineOf | 控件间的文本内容基准线对齐 |
layout_constraintStart_toEndOf | 控件的起始边与另外一个控件的尾部对齐 |
layout_constraintStart_toStartOf | 控件的起始边与另外一个控件的起始边对齐 |
layout_constraintEnd_toStartOf | 控件的尾部与另外一个控件的起始边对齐 |
layout_constraintEnd_toEndOf | 控件的尾部与另外一个控件的尾部对齐 |