欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

新人一枚,Android四大布局管理器基础知识总结

程序员文章站 2024-03-25 19:52:04
...

Android布局管理器

Android提供四大布局管理器(线性布局LinearLayout、表格布局TableLayout、帧布局FrameLayout、相对布局RelativeLayout),绝对布局已经废弃。

线性布局LinearLayout

线性布局是将放入其中的组件按照垂直或水平方向来布局。

基本格式
<LinearLayout xmlns:android=http://schemas.android.com/apk/res/android
       属性列表
>
</LinearLayout>
属性列表
属性 介绍 属性值 介绍
android:id 设置组件id @+id/button1 为组件设置了button1的id,可以通过findViewById(R.id.button1)找到该组件
android:orientation 组件排列方式 horizontal 水平对齐
vertical 垂直对齐
android:gravity 组件对齐方式 top、bottom、left、right 上下左右对齐方式,也可以通过top|left来设置左上对齐方式,类推。
center_vertical、center_horizontal 垂直居中显示、水平居中显示
center 横纵居中对齐
fill_vertical 必要的时候增加对象的纵向大小,以完全充满其容器. 垂直方向填充
fill_horizontal 必要的时候增加对象的横向大小,以完全充满其容器. 水平方向填充
fill 必要的时候增加对象的横纵向大小,以完全充满其容器.
clip_vertical 附加选项,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.垂直方向裁剪
clip_horizontal 附加选项,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.水平方向裁剪
android:layout_width 设置组件宽度 match_parent 组件宽度与父容器宽度相同
wrap_parent 组件宽度恰好能包裹它的内容
120dp 数值+单位
android:layout_height 设置组件高度 match_parent 组件高度与父容器高度相同
wrap_parent 组件高度恰好能包裹它的内容
120dp 数值+单位
layout_weight 组件空间分配权重 1或者2或者3… 根据比例来划分空间
android:background 为组件设置背景 #FFFFFF 设置颜色
@drawable/background 设置为图片,图片放在drawable中
以下属性不理解可查盒子模型 盒子模型 盒子模型 盒子模型
android:layout_marginTop 上外边距 20dp 数值+单位
android:layout_marginBottom 下外边距 20dp 数值+单位
android:layout_marginLeft 左外边距 20dp 数值+单位
android:layout_marginRight 右外边距 20dp 数值+单位
android:paddingTop 上内边距 20dp 数值+单位
android:paddingBottom 下内边距 20dp 数值+单位
android:paddingLeft 左内边距 20dp 数值+单位
android:paddingRight 右内边距 20dp 数值+单位

表格布局TableLayout

以行和列的形式来管理放入其中的UI组件。

基本格式
<TableLayout xmlns:android=http://schemas.android.com/apk/res/android
      属性列表
>
      <TableRow  属性列表> 需要添加的UI组件  </TableRow>
            <!--多个TableRow  每个TableRow就是一行-->
</TableLayout>
属性列表

支持线性布局所有属性

属性 介绍 属性值 介绍
android:collapseColumns 设置需要被隐藏的列的列序号,多个列序号之间用逗号隔开 1,2 列序号
android:shrinkColumns 设置允许被收缩的列的列序号,多个列序号之间用逗号隔开 2,0 列序号
android:stretchColumns 设置允许被拉伸的列的列序号,多个列序号之间用逗号隔开 1,2 列序号

帧布局FrameLayout

在帧布局管理器中,每放入一个组件,都将创建一个空白的区域,通常称为一帧,这些帧都会根据gravity属性执行自动对齐,后面的组件可以覆盖前面的组件。简单点说就是一层一层叠在一起。

基本格式
<FrameLayout xmlns=http://schemas.android.com/apk/res/android
      属性列表
>
</FrameLayout>
属性列表

支持线性布局所有属性(可能吧,不确实,没试过)

属性 介绍 属性值 介绍
android:foreground 设置该帧布局容器的前景图像 @drawable/foreground 该图像始终置于前面,不被其他帧所覆盖
android:foregroundGravity 设置前景图像显示的位置 属性值同gravity

相对布局RelativeLayout

相对布局是按照组件之间的相对位置来进行布局,如某一个组件在另一个组件的左边、右边、上边、下边。

基本格式
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android
       属性列表
>
</RelativeLayout>
属性列表

支持线性布局所有属性(可能吧,不确实,没试过)

属性 介绍 属性值 介绍
android:ignoreGravity 用于指定那个组件不受gravity属性的影响 @+id/button1 该id所表示的组件不受gravity属性影响

RelativeLayout提供了一个内部类RelativeLayout.LayoutParams来控制相对布局管理器中各组件的分布方式,如下:

属性 介绍 属性值 介绍
android:layout_above 属性值为其他UI组件id,用于指定该组件位于那个组件上方 以下属性值皆为id
android:layout_below 指定该组件位于哪一个组件的下方
android:layout_layout_toLeftOf 指定该组件位于哪一个组件的左方
android:layout_toRightOf 指定该组件位于哪一个组件的右方
android:layout_alignBottom 用于指定该组件与那一个组件的下边界对齐
android:layout_alignTop 用于指定该组件与哪一个组件的上边界对于
android:layout_alignLeft 左边界对齐
android:layout_alignRight 右边界对齐
android:layout_alignParentBottom 指定该组件是否与布局管理器底端对齐 以下属性值皆为boolean值(true/false)
android:layout_alignParetnTop 指定该组件是否与布局管理器的顶端对齐
android:layout_alignParentLeft 指定该组件是否与布局管理器的左端对齐
android:layout_alignParentRight 指定该组件是否与布局管理器的右端对齐
android:layout_centerVertical 是否垂直居中
android:layout_centerHorizontal 是否水平居中
android:layout_centerInParent 是否横纵居中
啦啦啦啦

各布局可以嵌套使用。
欢迎大家批评指正!