- Android开发实战:从学习到产品
- 李瑞奇
- 417字
- 2021-04-05 12:16:15
3.7 GridLayout:网格布局管理器
网格布局管理器是Android 4.0以后新增加的布局管理器。网格布局管理器将容器划分为行×列的网格,每个控件置于网格中,当然也可以通过设置相关属性使一个控件占据多行或多列。
3.7.1 GridLayout实例及属性详解
GridLayout相比其他的布局管理器的常用属性如表3-3所示。
表3-3 GridLayout常用属性
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-T75_128697.jpg?sign=1739434316-eCArQb1lcmzfUDJoKfGtymP2AKkMAf30-0-acf7034d8fade3b97ab1f5c60820bc64)
布局文件实例如下:
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P76_128699.jpg?sign=1739434316-7yUaafWtzSX0Z8WogtkrcBVskeLQtSdj-0-7a1efa9bba2936cebda4d2ce1b9f2a83)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P77_128700.jpg?sign=1739434316-ps8pk93K2MLe79kYGrN7gg0fP4l5VEdR-0-715fde8d0ee4cd5f27e76f8980b1e0dd)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P77_70139.jpg?sign=1739434316-6FjZYqGVQYUJmxeUkIOLLbJAZ2Q4hMS7-0-6221c20420e4a9e89585f5e1bd5873d7)
图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类控制网格布局的代码实例如下:
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P77_128701.jpg?sign=1739434316-tmELmCJpBRj2OEOFVbv4MlTWopsk4Np9-0-508e2208c6259a165f70e91704132864)
这个程序通过在Activity中使用Java代码动态操作布局文件的方式定义了网格布局,实现了和使用布局文件同样的效果。程序实现的效果如图3-13所示。
可以发现,这个效果和之前的效果是完全一样的。
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P79_70338.jpg?sign=1739434316-TLGpZhOhaWQ9BcpNOmzPNu9Iq0BNlibP-0-8027d07e167486f5c82c6e73d481e702)
图3-13 代码控制的网格布局效果图