Skip to content

Android常见界面布局

2.1 View视图

所有的UI元素都是通过View与ViewGroup构建的,对于一个Android应用的用户界面来说,ViewGroup作为容器盛装界面中的控件,它可以包含普通的View控件,也可以包含ViewGroup。

2.2 界面布局编写方式

  1. 在XML文件中编写布局:推荐此种方式布局
    • 有效的将界面中布局的代码和Java代码隔离,使程序的结构更加清晰。
  2. 在Java代码中编写布局
    • 在Android中所有布局和控件的对象都可以通过new关键字创建出来,将创建的View控件添加到ViewGroup布局中,从而实现View控件在布局界面中显示。

2.3 常见界面布局

image-20241015081146837

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相对布局

image-20241015081454703

2.3.3 LinearLayout线性布局

image-20241015081612252

LinearLayout布局中的android:layout_width属性值不可设为wrap_content。

这是因为LinearLayout的优先级比Button高,如果设置为wrap_content,则Button控件的android:layout_weight属性会失去作用。

当控件使用权重属性时,布局宽度属性值通常设置为0dp

2.3.4 TableLayout表格布局

image-20241015081803301

2.3.5 FrameLayout帧布局

image-20241015081934887

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控件的尾部与另外一个控件的尾部对齐

Released under the MIT License.