![Android开发实战:从学习到产品](https://wfqqreader-1252317822.image.myqcloud.com/cover/688/920688/b_920688.jpg)
上QQ阅读APP看书,第一时间看更新
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=1739410715-5M02KJ7aLoHgJN3kl7DGk78YuXr8rZIx-0-7f7a0bada57fc00e679fc4f55e020255)
布局文件实例如下:
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P76_128699.jpg?sign=1739410715-LZAQEXHCCQ7U5P31axANRk8ltXS2IrE9-0-5ec43e349893d95b022f87e8ec86be51)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P77_128700.jpg?sign=1739410715-gXgZwbvR1zc6LUyfEHQ6veKYDBJfvn15-0-5b95f79c9733bda856551d94e30c3d3f)
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P77_70139.jpg?sign=1739410715-dyNKXw4qKlTvowcYhMobbSYNZYVKhQst-0-58e0aa6ea112009b8707a0e21fb7b37c)
图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=1739410715-OoKtSfI8H9wS9DED0DyvMLYk5l1sYdYS-0-02096d619f378471f2bd241c7fefb45c)
这个程序通过在Activity中使用Java代码动态操作布局文件的方式定义了网格布局,实现了和使用布局文件同样的效果。程序实现的效果如图3-13所示。
可以发现,这个效果和之前的效果是完全一样的。
![](https://epubservercos.yuewen.com/065DC9/10080940803417301/epubprivate/OEBPS/Images/Figure-P79_70338.jpg?sign=1739410715-e362XhhX73zblrhXa4osHT1SDJsj2SSK-0-c2c561ed9a7d1aded0b8704e0ffcf12a)
图3-13 代码控制的网格布局效果图