介绍

网格布局管理器是在 Android 4.0 版本中提出的,使用 GridLayout 表示。在网格布局管理器中,屏幕被虚拟的细线划分成行、列和单元格,每个单元格放置一个组件,并且这个组件也可以跨行或跨列摆放,如图 3.24 所示。(网格布局管理器与表格布局有些类似,都可以以行、列的形式管理放入其中的组件,但是它们之间最大的不同就是网格布局管理器可以跨行显示组件,而表格布局管理器则不能)

网格布局android例子 什么是网格布局管理器_属性值

 基本的语法格式如下:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
属性列表
 >
</GridLayout >

XML属性

GridLayout 支持

XML属性

描述

android:columnCount

用于指定网格的最大列数

android:rowCount

用于指定网格的最大行数

android:orientation

用于当没有为放入其中的组件分配行和列时,指定其排列方式。其属性值为horizontal 表示水平排列;属性值为 vertical 表示垂直排列

android:useDefaultMargins

用于指定是否使用默认的边距,其属性值设置为 true 时,表示使用;属性值为false 时,表示不使用

android:alignmentMode

用于指定该布局管理器采用的对齐模式,其属性值为 alignBounds 时,表示对齐边界;值为 alignMargins 时,表示对齐边距,默认值为 alignMargins

android:rowOrderPreserved

用于设置行边界显示的顺序和行索引的顺序是否相同,其属性值为 true,表示相同,属性值为 false,表示不相同

android:columnOrderPreserved

用于设置列边界显示的顺序和列索引的顺序是否相同,其属性值为 true,表示相同, 属性值为 false,表示不相同

 GridLayout 子组件支持

为了控制网格布局管理器中各子组件的布局分布,网格布局管理器提供了GridLayout.LayoutParams内部类,在该类中提供了如表

在网格布局管理器中,如果想让某个组件跨行或跨列,那么需要先通过android:layout_columnSpan或者android:layout_rowSpan设置跨越的行或列数,然后再设置其layout_gravity属性为fill,表示该组件填满跨越的行或者列

XML属性

描述

android:layout_column

用于指定该子组件位于网格的第几列

android:layout_columnSpan

用于指定该子组件横向跨几列(索引从 0 开始)

android:layout_columnWeight

用于指定该子组件在水平方向上的权重,即该组件分配水平剩余空间的比例

android:layout_gravity

用于指定该子组件采用什么方式占据该网格的空间,其可选值有 top(放置在顶部)、bottom(放置在底部)、left(放置在左侧)、right(放置在右侧)、

center_vertical(垂直居中)、fill_vertical(垂直填满)、center_horizontal(水平居中)、fill_horizontal(水平填满)、center(放置在中间)、fill(填满)、clip_vertical(垂直剪切)、clip_horizontal(水平剪切)、start(放置在开始位置)、end(放置在结束位置)

android:layout_row

用于指定该子组件位于网格的第几行(索引从 0 开始)

android:layout_rowSpan

用于指定该子组件纵向跨几行

android:layout_rowWeight

用于指定该子组件在垂直方向上的权重,即该组件分配垂直剩余空间的比例

例子