美文网首页
深入理解Android布局就看这个!

深入理解Android布局就看这个!

作者: 安安_660c | 来源:发表于2022-09-30 21:36 被阅读0次

一、常见布局

线性布局——LinearLayout
相对布局——RelativeLayout
帧布局——FrameLayout
绝对布局——AbsoluteLayout
表格布局——TableLayout
网格布局——GridLayout

二、具体介绍

(一)LinearLayout

1.简介
线性布局,是最常用的布局之一,这个布局会将它所包含的控件在线性方向上依次排列,排列方向可以设定为水平方向或垂直方向。
2.属性
排列方向:
android:orientation="horizontal" //水平
android:orientation="vertival" //垂直
对齐方式:
android:gravity="centestar|end|top|left|right|center_vertical|center_horizontal"
android:layout_gravity
1)注意layout_width和width的区别:
android:gravity 指本元素的子元素相对它的对齐方式
android:layout_gravity指本元素相对它的父元素的对齐方式
但凡加上'layout_'前缀的属性,则意味着是本元素相对其父元素的属性
2)center :
居中显示,但并不表示显示在LinearLayout的中心,当LinearLyout线性方向为垂直方向时,等同于center_horizental;水平方向时,等同于cental_vertical
3)start和left 、end和right
left是绝对的左边,start是相对的,会根据不同的国家阅读习惯而改变,比如在从右向左顺序阅读的国家,start代表的就是在右边
子控件的大小:
1 android:layout_weight ="1"
2 android:layout_width="match_parent|wrap_content|xdp"
3 android:layout_height="match_parent|wrap_content|xdp"
注意:layout_weight :用来分配当前控件在剩余空间的大小,当我们是使用layout_weight时,此时控件的宽度不应该再用layout_width来决定

(二)RelativeLayout

1.简介
它可以通过相对定位的方式让空间出现在布局的任何位置。相对布局可以让子控件相对于兄弟控件或父控件进行布局。
2.属性
子控件常用布局:
1)相对于父容器
layout_alignParentLeft 向父容器的左边对齐
layout_alignParentRight 向父容器的右边对齐
layout_alignParentTop 向父容器的顶部对齐
layout_alignParentBottom 向父容器的底部对齐
layout_centerInParent 设置当前组件在父容器的中间位置
layout_centerHorizontal 设置当前组件在父容器中水平居中
layout_alignParentLeft 设置当前组件在父容器中垂直居中
2)相对兄弟组件:
layout_toLeftOf 在指定组件的左边
layout_toRightOf 在指定组件的右边
layout_above 在指定组件的上方
layout_below 在指定组件的下方
layout_alignTop 向指定组件的上边界对齐
layout_alignBottoml 向指定组件的下边界对齐
layout_alignLeft 向指定组件的左边界对齐
layout_alignRight 向指定组件的右边界对齐
3)组件的内边距与外边距:
padding 设置组件上下左右的内边距
paddingLeft 设置组件左边的内边距
paddingRight 设置组件右边的内边距
paddingTop 设置组件上方的内边距
paddingBottom 设置组件下方的内边距
layout_margin 设置组件上下左右的外边距
layout_marginLeft 设置组件左边的外边距
layout_marginRight 设置组件右边的外边距
layout_marginTop 设置组件上方的外边距
layout_marginBottom 设置组件下方的外边距

(三)FrameLayout

1.简介
最简单的一种布局,所有的控件都会默认摆放在布局的左上角,后续添加的控件会覆盖前一个。
2.属性
1 android:foreground //设置改帧布局的前景图像
2 android:foregroundGravity //设置前景图像显示的位置

(四)AbsoluteLayout

1.简介
绝对布局中将所有的子元素通过android:layout_x和android:layout_y属性,将子元素的坐标位置固定下来。屏幕左上角为坐标(0,0),横向往右为正方,纵向往下为正方。
2.属性
layout_width 设置组件的宽度
layout_height 设置组件的高度
layout_x 设置组件的X坐标
layout_y 设置组件的Y坐标

(五)TableLayout

1.介绍
表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。
2.属性
collapseColumns 设置需要被隐藏的列的列序号
shrinkColumns 设置允许被收缩的列的列序号
stretchColumns 设置允许被拉伸的列的列序号
layout_column 设置跳过指定的列,组件元素从下一列开始显示
layout_span 合并指定列数的单元格

注意:在TableLayout中,单元格可以为空,但是不能跨列,意思是只能不能有相邻的单元格为空;列的索引从0开始,shrinkColumns和stretchColumns可以同时设置

(六)GridLayout

1.介绍
一个新加入的布局,网格表格提供的对齐属性更多,布局更为灵活。
2、属性
orientation 设置布局中组件的排列方式,vertical与horizontal
layout_gravity 设置布局容器的对齐方式,center、bottom等等
rowCount 设置网格布局有多少行
columnCount 设置网格布局有多少列
layout_row 设置组件位于布局中的某一行
layout_column 设置组件位于布局中的某一列
layout_rowSpan 设置组件横跨几行
layout_columnSpan 设置组件横跨几列

以上就是Android的常见布局分析了,大家可以结合代码实战进行理解,希望对大家有所帮助。

相关文章

网友评论

      本文标题:深入理解Android布局就看这个!

      本文链接:https://www.haomeiwen.com/subject/lrjrartx.html