文章目录
1 添加目录只需要在博客最前边添加
在安卓中为了适应不同的界面风格,系统提供了五种布局分别是:线性布局 LinearLayout,帧布局 FrameLayout,相对布局 RelativeLayout,表格布局 TableLayout和约束布局 ConstrainLayout。
通用属性
这几个布局拥有通用的属性
属性名称 | 功能描述 |
---|---|
android:id | 设置布局的唯一标识 |
android:layout_width | 设置布局的宽 |
android:layout_height | 设置布局的高 |
android:background | 设置布局的背景 |
android:layout_margin | 设置布局的外边距(也就是当前布局与屏幕边界或与周围控件的距离) |
android:layout_padding | 设置布局的内边距 (也就是该布局控件与当前布局的距离) |
android:id :用于设置布局的唯一标识,在xml文件中它的属性值是通过“@id/属性名称”来定义.
android:layout_width :用于设置布局的宽度,他的值可以是自己设定的,比如:10dp,或者是系统的值,比如:match_parent,wrap_parent;
android:layout_height:设置该布局的高度,他的值可以自己设定,也可以系统设定
其中:
match_parent:表示这个布局的长度和屏幕的宽度一样
wrap_parent:表示该布局的宽度和它本身的内容相同
android:background:用于设置该布局的背景,可以用图片或者颜色
android:layout_margin:用于设置当前布局与屏幕边界、周围布局或者控件的距离,他的属性值就是具体的尺寸,跟这个相似的还有android:layout_marginTop,Top可以换成Bottom,Left,Right
android:layout_padding:用于设置该布局控件与当前布局的距离,他的属性值就是具体的尺寸,跟这个相似的还有android:layout_paddingTop,Top也可以换成Right,Bottom,Left
以上就是通用布局属性的详细解说,接下来讲解的是相对布局
RelativeLayout 相对布局
相对布局RelativeLayout 通过相对定位来指定子控件的位置,使用绝对布局时要使用标签,定义格式:<RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android”
属性=“属性值”
. . . . . .>
< /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 xmlns:android=“http://schemas.android.com/apk/res/android”
属性=“属性值”
. . . . . .>
< /LinearLayout >
线性布局的常用属性
属性名称 | 名称 |
---|---|
android:orientation | 设置布局内控件的排列顺序 |
android:layout_weight | 在布局内设置控件权重(也可以说是比例) |
android:orientation:这个属性有两个属性值
1.vertical:表示控件依次从上到下垂直排列
2.horizontal:表示控件依次从左到右水平排列
TableLayout 表格布局
表格布局TableLayout :采用列和行的形式来管理控件,不需要明确的来声明行列,而是通过TableLayout布局中在添加一个TableRow布局来控制表格的或控件的行数,可以在TableRow添加控件来控制表格的列数 格式:<TableLayout xmlns:android=“http://schemas.android.com/apk/res/android”
属性=“属性值”
. . . . . .>
< TableRow >
UI控件
< /TableRow >
< /TableLayout >
表格布局是继承自线性布局,所以线性布局的属性他也可以属性,此外他还有属于自己的布局
表格布局的属性:
属性名称 | 说明 |
---|---|
android:stretchColums | 设置可被拉伸的列,比如:android:stretchColums=“0”, 表示第一列可被拉伸 |
android:shrinkColumns | 设置可被收缩的列,比如:android:shrinkColumns=“1,2” 表示第2,3列可收缩 |
android:collapseColumns | 设置可被隐藏的列,比如:android:collapseColumns="0"表示隐藏第一列 |
表格布局控件的属性:
属性名称 | 说明 |
---|---|
android:layout_column | 设置该控件显示的位置,比如:android:layout_column="1"表示在第2个位置显示 |
android:layout_span | 设置该控件占据几行,默认为1行 |
FrameLayout帧布局
帧布局FrameLayout :用于在屏幕上创建一个空白区域,添加到该区域中的每个子控件占一个帧,这些帧会叠加在一起,后加入的控件叠加在上一个控件上。默认情况帧布局的所有控件与左上角对齐
语法格式:<FrameLayout xmlns:android=“http://schemas.android.com/apk/res/android”
属性=“属性值”
. . . . . .>
< /TFrameLayout >
帧布局的属性:
属性名称 | 说明 |
---|---|
android:foreground | 设置帧布局的前景图像(始终在所有子控件之上) |
android:foregroundGravity | 设置前景图像显示的位置 |
ConstraintLayout 约束布局
约束布局ConstraintLayout :是安卓新添加的布局,约束布局并不适合使用XML代码的方式编码布局,但是它非常适合可视化方式编写界面布局。相比传统布局,ConstraintLayout 在几个方面提供一些新的特性:
方面1.相对定位
相对定位是在ConstraintLayout 创建布局的基本构建方法之一。相对定位即一个控件相对于另外一个控件进行定位
相对定位的属性:
属性名称 | 说明 |
---|---|
layout_constraintLeft_toLeftOf | 控件的左边与另外一个控件的左边对齐 |
layout_constraintLeft_toRightOf | 控件的左边与另外一个控件的右边对齐 |
layout_constraintRight_toLeftOf | 控件的右边与另外一个控件的左边对齐 |
layout_constraintRight_toRightOf | 控件的右边与另外一个控件的右边对齐 |
layout_constraintTop_toTopOf | 控件的上边与另外一个控件的上边对齐 |
layout_constraintTop_toBottomOf | 控件的上边与另外一个控件的下边对齐 |
layout_constraintBaseline_toBaselineOf | 控件间的文本内容基准线对齐 |
layout_constraintStart_toStartOf | 控件的起始边与另外一个控件的起始边对齐 |
layout_constraintStart_toEndOf | 控件的起始边与另外一个控件的尾部边对齐 |
layout_constraintEnd_toStartOf | 控件的尾部与另外一个控件的起始边对齐 |
layout_constrainEnd_toEndOf | 控件的尾部与另外一个控件的起始边对齐 |
方面2.居中定位和倾向
通过添加约束的方式确定该控件在父布局(ConstaintLayout)的相对位置,当相同方向上(横向或纵向),控件两边同时向ConstraintLayout添加约束,则控件在添加约束的方向上居中显示。
在约束是同向相反的情况下,默认控件是居中。但是也像拔河一样,两个约束力如果不相同就会产生倾斜。
倾斜的属性:
属性名称 | 说明 |
---|---|
layout_constraintHorizontal_bias | 横向的倾斜 |
layout_constraintVertical_bias | 纵向的倾斜 |
方面3Chain
Chain(链)是一种特殊的约束,能让我们对一组水平或者竖直方向互相管理的控件统一管理,一组控件通过双向的约束关系链接起来就能形成一个Chain。
以上就是五大布局的详细解说。