C虾仔笔记 - GridLayout网格布局

■GridLayout网格布局

1.概述:Android4.0新增的以网格形式排布子控件的布局管理器。
            若想在更早版本的系统上使用它,则要导入相应的支撑库。
            与LinearLayout相似,也有布局方向,默认是水平布局挨个排列。
            实现GridLayout的效果,也可以用LinearLayout和TableLayout替代(不推荐)。

2.优点:

          (1)相比于LinearLayout:
                  GridLayout能同时在X和Y轴方向上控制子控件的对齐;

                  GridLayout避免了因为过多层布局嵌套而导致性能降低的问题。

          (2)相比于TableLayout:
                  GridLayout的行数和列数都能控制,避免TableRow加个子控件就可能加一列的情况;

                  GridLayout还能占据多行或多列。

           总之,能够迅速有效地实现较为整齐有序的网格形式布局。

3.属性:

    (1)对齐方式:alignmentMode 对齐模式 setAlignmentMode(int)

    (2)排布方式:orientation 布局方向 setOrientation(int)
            值为horizontal时,若不定义列数,就不折行而可能从左往右溢出。(默认值)

            值为vertical时,若不定义行数,就不折列而可能从上往下溢出。

    (3)行列个数:rowCount 行数 setRowCount(int) ; columnCount 列数 setColumnCount(int)

    (4)保留序号: rowOrderPreserved 是否保留行序号 setRowOrderPreserved

                         columnOrderPreserved 是否保留列序号 setColumnOrderPreserved

    (5)外边距/页边距: useDefaultMargins 是否用默认页边距 setUseDefautMargins(boolean)


4.其子控件的属性:

    对齐方式:layout_gravity 对应的父容器是所在的小网格(而非整个网格布局) setGravity(int)

    自身位置:layout_row="0" 在第1行;layout_column="1" 在第2列

    跨行跨列:layout_rowSpan="2" 向下跨2行;layout_columnSpan="3" 向右跨3列

你可能感兴趣的:(Android,-,ViewGroup)