六大布局


1

线性布局

LinearLayout

2

表格布局

TableLayout

3

相对布局

RelativeLayout

4

层布局

FrameLayout

5

绝对布局

AbsoluteLayout

6

网格布局

GridLayout

一、线性布局:LinearLayout

序号

属性

说明

1

android:orientation="horizontal"

android:orientation="vertical"

1)水平线性布局,布局内部所有的控件水平排列

2)垂直线性布局,布局内所有的控件垂直排列

2

android:gravity=""

1)center:如果是水平排列则只有水平居中有效果,如果是垂直排列则只有垂直居中有效果

2)center_vertical:垂直居中(仅在控件垂直排列时有效)

3)center_horizontal:水平居中(仅在控件水平排列时有效)

4)top:垂直靠上对齐(仅在控件垂直排列时有效)

5)bottom:底部对齐(仅在控件垂直排列时有效)

6)left:水平靠左(仅在控件水平排列时有效)

7)right:水平靠右(仅在控件水平排列时有效)

ps:当父类控件的gravity和子类控件的layout_gravity发生冲突的时候,采用的是父类属性gravity的效果。

3

android:layout_weight="1"

1)权重,默认为0

2)权重设置之后可以在水平方向和垂直方向上的长度生效,通常来讲需要使用到权重的方向,该方向上的空间长度不设置或设置为零。

3)渲染时先按照控件正常尺寸渲染,当还有屏幕剩余空间时,按照各个控件的权重大小进行比例分配,占满全屏。

 

 

 

二、相对布局:RelativeLayout

通常情况下相对布局都是通过id进行管理的,都会加id属性

序号

属性

说明

1

android:layout_alignParentTop

控件的顶部与父控件的顶部对齐

2

android:layout_alignParentBottom

控件底部与父控件底部对齐

3

android:layout_alignParentLeft

与父控件左部对齐

4

android:layout_alignParentRight

与父控件右部对齐

以下属性是相对于其他控件而言的属性,采用参照方式  android:layout_above="@id/name"

1

android:layout_above

控件的底部置于给定ID控件之上

2

android:layout_below

控件的顶部置于给定ID控件之下

3

android:layout_toLeftOf

控件的右边缘与给定ID控件的左边缘对齐(控件在给定ID控件的左边)

4

android:layout_toRightOf

控件的左边缘与给定ID控件的右边缘对齐(控件在给定ID控件的右边)

5

android:layout_alignBaseline

控件的baseline与给定ID控件的baseline对齐(什么是baseline?)

6

android:layout_alignTop

控件的顶部边缘域给定ID控件的顶部边缘对齐

7

android:layout_alignBottom

控件的底部边缘域给定ID控件的底部边缘对齐

8

android:layout_alignLeft

控件的左边缘与给定ID控件的左边缘对齐

9

android:laytout_alignRight

控件的右边缘与给定ID控件的右边缘对齐

居中

1

android:layout_centerInParent="true"

 

2

android:layout_centerHorizontal

水平居中

3

android:layout_centerVertical

垂直居中

4

android:layout_centerInParent

父控件的中央

 

 

 

三、层布局:FrameLayout

主要应用在地图APP设计当中,普通软件设计用的不多,从屏幕左上角按照层次堆叠方式布局,后面的空间覆盖前面的控件。

四、绝对布局:AbsoluteLayout

绝对布局通过 android:layout_x及android:layout_y属性定位出坐标绝对位置,不是很常用,因为终端机型比较多,采用绝对定位容易导致显示兼容性不佳的问题。

五、表格布局:TableLayout

每个TableLayout由多个TableRow组成,一个TableRow就是一行,实际上TableLayout就是LinearLayout的验身,只不过固定了以下几个属性的设置:android:orientation="horizontal" android:layout_width=“match_parent”, android:layout_height="wrap_content"。

序号

属性

说明

1

android:shrinkColumns

设置可收缩的列,当内容过多的时候则自动收缩显示在第二行

2

android:stretchColumns

设置可伸展的列,将空白区域填充满整个列的宽度

3

android:collapseColumns

设置要隐藏的列

4

android:layout_column

第几列

5

android:layout_span

占据列数

 

 

 

六、网格布局:GridLayout

序号

属性

说明

1

android:orientation=""

组件排序方式

vertival:垂直,默认

horizonal:水平

2

android:layout_gravity=""

组件对齐方式

center left right bottom

3

android:rowCount="4"

设置网格布局为4行

4

android:columnCount="4"

设置网格布局为4列

5

android:layout_row="1"

设置组件位于第二行

6

android:layout_column="2"

设置组件位于第三列

7

android:layout_rowSpan="2"

纵向横跨2行

8

android:layout_columnSpan="3"

横向横跨2列