■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 是否保留行序號 setRowOrderPreservedcolumnOrderPreserved 是否保留列序號 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列