当前位置:   article > 正文

android 常用布局组件,Android六大基本布局

安卓六大常用

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

E:%5CNeedPhoto%5CAndroid.png

一.基本理论

Android六大基本布局分别是:

线性布局LinearLayout、

表格布局TableLayout、

相对布局RelativeLayout、

层布局FrameLayout、

绝对布局AbsoluteLayout、

网格布局GridLayout。

二.各个布局的使用

(一)线性布局LinearLayout

android:orientation 控制方向 属性值垂直(vertical)和水平(horizontal),默认水平方向。

android:gravity 内部控件对齐方式,常用属性值有 center、center_vertical、center_horizontal、top、bottom、left、right等。这个属性在布局组件RelativeLayout、TableLayout中也有使用,FrameLayout、AbsoluteLayout则没有这个属性。center:居中显示,这里并不是表示显示在LinearLayout的中心,当LinearLayout线性方向为垂直方向时,center表示水平居中,但是并不能垂直居中,此时等同于center_horizontal的作用;同样当线性方向为水平方向时,center表示垂直居中,等同于center_vertical。

top、bottom、left、right为内部控件居顶、底、左、右布局。

android:layout_gravity使用来设置自身相对于父元素的布局。

andro:layout_weight:权重,用来分配当前控件在剩余空间的大小。使用权重一般要把分配该权重方向的长度设置为零,比如在水平方向分配权重,就把width设置为零。

(二) 相对布局RelativeLayout

相对布局可以让子控件相对于兄弟控件或父控件进行布局,可以设置子控件相对于兄弟控件或父控价进行上下左右对齐。相对布局就是一定要加id才能管理。

*RelativeLayout中子控件常用属性:

1.相对于父控件1

2

3

4android:layout_alignParentTop 控件的顶部与父控件的顶部对齐;

android:layout_alignParentBottom 控件的底部与父控件的底部对齐;

android:layout_alignParentLeft 控件的左部与父控件的左部对齐;

android:layout_alignParentRight 控件的右部与父控件的右部对齐;

2.相对给定id控件1

2

3

4

5

6

7

8

9android:layout_above 控件的底部置于给定ID的控件之上;

android:layout_below 控件的底部置于给定ID的控件之下;

android:layout_toLeftOf 控件的右边缘与给定ID的控件左边缘对齐;

android:layout_toRightOf 控件的左边缘与给定ID的控件右边缘对齐;

android:layout_alignBaseline 控件的baseline与给定ID的baseline对齐;

android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐;

android:layout_alignBottom 控件的底部边缘与给定ID的底部边缘对齐;

android:layout_alignLeft 控件的左边缘与给定ID的左边缘对齐;

android:layout_alignRight 控件的右边缘与给定ID的右边缘对齐;

3.居中1

2

3android:layout_centerHorizontal 水平居中;

android:layout_centerVertical 垂直居中;

android:layout_centerInParent 父控件的中央;

三.层布局FrameLayout

层布局,从屏幕的左上角按照层次堆叠方式布局,后面的控件覆盖前面的控件。

四.相对布局AbsoluteLayout

绝对布局元素将所有的子元素通过设置android:layout_x和android:layout_y属性,将子元素的位置固定下来。layout_x用来表示横坐标,layout_y用来表示纵坐标。屏幕左上角为坐标(0,0),横向往右为正方,纵向往下为正方。实际应用中,这种布局用的比较少,因为机型比较多,屏幕大小、分辨率大部分不一样,如果用绝对布局,可能导致在有的终端上显示不全等。

五.表格布局TableLayout

表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。TableLayout和TableRow都是LinearLayout线性布局的子类。

TableRow的参数android:orientation属性值固定为horizontal,

android:layout_width=MATCH_PARENT,

android:layout_height=WRAP_CONTENT。

所以,TableRow实际是一个横向的线性布局,所以子元素宽度和高度一致。

*注意:在TableLayout中,单元格可以为空,但是不能跨列,意思是不能有相邻的单元格为空。

TableLayout的常用属性:

android:shrinkColumns:设置可收缩的列,内容过多就收缩显示到第二行

android:stretchColumns:设置可伸展的列,将空白区域填充满整个列

android:collapseColimns:设置要隐藏的列

列的索引从0开始,shrinkColumns和stretchColumns可以同时设置。

*子控件常用属性:

android:layout_column:第几列

android:layout_span:占据列数

六.网格布局GridLayout

①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式

②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较)

因为是android 4.0新增的,API Level 14,在这个版本以前的sdk都需要导入项目。这里不解释。

常用属性:

排列对齐:

①设置组件的排列方式: android:orientation=”” vertical(竖直,默认)或者horizontal(水平)

②设置组件的对齐方式: android:layout_gravity=”” center,left,right,buttom

设置布局为几行几列:

①设置有多少行: android:rowCount=”4” //设置网格布局有4行

②设置有多少列: android:columnCount=”4” //设置网格布局有4列

设置某个组件位于几行几列

注:都是从0开始算的哦!

①组件在第几行: android:layout_row = “1” //设置组件位于第二行

②组件在第几列: android:layout_column = “2” //设置该组件位于第三列

设置某个组件横跨几行几列:

①横跨几行: android:layout_rowSpan = “2” //纵向横跨2行

②横跨几列: android:layout_columnSpan = “3” //横向横跨2列

***用法总结:

①GridLayout使用虚细线将布局划分为行,列和单元格,同时也支持在行,列上进行交错排列

②使用流程:

step 1:先定义组件的对其方式 android:orientation 水平或者竖直

step 2:设置组件所在的行或者列,记得是从0开始算的

step 3:设置组件横跨几行或者几列;设置完毕后,需要在设置一个填充:android:layout_gravity = “fill”

***可能遇到的问题:

当读者将布局设置为GridLayout时,会出现 莫名其妙的报错,

如果代码语法逻辑没有错的话,就可能是配置文件 AndroidManifest.xml 的问题了

因为GridLayout是android 4.0 后才推出的,API Level 为 14

只需要将配置文件中的 MinSDK改成14或者以上版本 即可,保存,问题就解决了!

七.除上面讲过之外常用的几个布局的属性

(1)layout_margin

用于设置控件边缘相对于父控件的边距

android:layout_marginLeft

android:layout_marginRight

android:layout_marginTop

android:layout_marginBottom

(2) layout_padding

用于设置控件内容相对于控件边缘的边距

android:layout_paddingLeft

android:layout_paddingRight

android:layout_paddingTop

android:layout_paddingBottom

(3) layout_width/height

用于设置控件的高度和宽度

wrap_content 内容包裹,表示这个控件的里面文字大小填充

fill_parent 跟随父窗口

match_parent

(4) gravity

用于设置View组件里面内容的对齐方式

top bottom left right center等

(5) android:layout_gravity

用于设置Container组件的对齐方式

android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐

android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐

android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐

android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/270319?site
推荐阅读
相关标签
  

闽ICP备14008679号