微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

安卓五大布局详解

文章目录


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。

以上就是五大布局的详细解说。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐