3.7 GridLayout:网格布局管理器

网格布局管理器是Android 4.0以后新增加的布局管理器。网格布局管理器将容器划分为行×列的网格,每个控件置于网格中,当然也可以通过设置相关属性使一个控件占据多行或多列。

3.7.1 GridLayout实例及属性详解

GridLayout相比其他的布局管理器的常用属性如表3-3所示。

表3-3 GridLayout常用属性

布局文件实例如下:

图3-12 网格布局效果图

在这个程序中使用了网格布局,用TextView和Button控件制作了一个简单计算器的布局。程序中通过android:layout_ rowSpan和android:layout_columnSpan设置表明组件横跨的行数与列数,再通过:android:layout_gravity = "fill"设置表明组件填满所横跨的整行或者整列。程序运行效果如图3-12所示。

3.7.2 使用代码控制网格布局管理器

与前几种布局管理器一样,网格布局也可以通过Android.widget.GridLayout类来动态控制,所有的参数也可以通过Android.widget.GridLayout.LayoutParams类来控制。

通过Android.widget.GridLayout类和Android.widget.GridLayout.LayoutParams类控制网格布局的代码实例如下:

这个程序通过在Activity中使用Java代码动态操作布局文件的方式定义了网格布局,实现了和使用布局文件同样的效果。程序实现的效果如图3-13所示。

可以发现,这个效果和之前的效果是完全一样的。

图3-13 代码控制的网格布局效果图