布局管理器----网格布局管理器(GridLayout)
- 网格布局管理器是Android4.0推出的。在网格布局管理器中,屏幕被虚拟的细线划分为行、列和单元格,每个单元格放置一个组件。如淘宝页面:
看起来和表格管理器一样,但还是有区别的:
- 放在网格布局管理器的单元格中的内容不仅可以跨列显示,还可以跨行显示;而放在表格布局管理器中的内容只能跨列显示,不能跨行显示。
- 网格布局管理器中,当某一行的内容在屏幕中无法完全展示时,可以将展示不出来的内容换行展示;而在表格布局管理器中,一行中展示不出来的内容就不再展示。
在activity_main.xml文件中,使用GridLayout标签来定义网格布局管理器。
- GridLayout的基本属性:
- android:columnCount :设置网格的最大列数。
总共设置五个按钮组件,不设置最大列数,所有组件在一行显示:
设置了最大列数为2,每一行就只能显示两个组件:
- android:orientation:设置网格中组件的排列方式。
- android:rowCount :设置网格的最大行数。
- GridLayout的内部类:GridLayout.params----用来控制各子组件的分布。
- android:layout_column :用来指定子组件位于网格布局管理器的第几列。从第0列算起。
- android:layout_columnSpan :设置子组件横跨几列。
- android:layout_columnWeight:设置子组件在水平方向的权重,用来分配水平方向剩余空间。
- android:layout_gravity :用来设置子组件以什么方式占据网格空间。如水平居中、竖直居中、右下角等。
- android:layout_row :指定子组件位于第几行。
- android:layout_rowSpan :指定子组件纵向跨几行。
- android:layout_rowWeight :指定子组件在垂直方向的权重。
示例:
3个按钮,按钮1位于0行0列,按钮2位于1行2列,按钮3位于1行1列:
按钮2纵跨两行:
按钮1横跨两列(不再设置按钮2纵跨两行):