GridLayout

網格容器佈局, 能夠兼容的寫出相似Excel表格同樣的效果;android

GridLayout 屬性

排列模式

android:alignmentModebash

  • alignBounds 對齊邊界
  • alignMargins 對齊margin

若是子視圖存在margin(邊距), 能夠控制是否對齊margin仍是對齊子視圖的邊界. padding無效佈局

行數

android:columnCount 列數spa

android:rowCount 行數3d

超過行數或者列數就會自定換行code

android:columnOrderPreservedcdn

android:rowOrderPreservedxml

以上兩個屬性是控制行或者列的最大範圍是否跟隨最大值blog

android:orientation 方向string

android:useDefaultMargins 默認邊距

是否使用默認的邊距(8dp), 默認false.

若是GridLayout不給子控件設置任何屬性, 將默認從左到右/從上到下排列. 超過指定行列就換行

LayoutParams

GridLayout的每一個網格都是一個Cell. 這些子控件時經過指定屬性來指定其在網格中的位置

控制

默認不填寫屬性的狀況下是依次排列行和列, 可是你能夠經過手動指定行列控制排列(能夠出現重疊)

android:layout_column 整數n,在哪一列開始顯示n=[0, 最大列-1]

android:layout_row 指定從哪一行開始顯示,規則同列數

示例:

若是我只指定android:layout_row="1", column依舊不變. 而且後面的子視圖會根據Button2所有改變位置

若是我再指定android:layout_column="0"

若是同時修改成0, 會覆蓋第一個子視圖.

android:layout_row="0"
        android:layout_column="0"
複製代碼

跨度

即控制一個cell應該擁有多大的跨度(範圍)

android:layout_columnSpan 整數k,指定元素橫跨幾列,須要注意保證n+k <= 最大列數

android:layout_rowSpan 縱向跨幾行,規則同列

示例:

<Button android:layout_columnSpan="2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1" />
複製代碼

對齊方式

android:layout_gravity

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_columnSpan="2" android:text="1" />
複製代碼

權重

android:layout_columnWeight

android:layout_rowWeight

示例:

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_columnWeight="1" android:layout_columnSpan="2" android:text="2" />
複製代碼

示例

<GridLayout android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="200dp" android:alignmentMode="alignMargins" android:columnCount="4" android:rowCount="4" >

        <Button android:layout_width="80dp" android:layout_height="50dp" />
        <Button android:layout_width="100dp" android:layout_height="50dp" android:layout_column="2" android:layout_row="1" />
        <Button android:layout_width="80dp" android:layout_height="50dp" />
        <Button android:layout_width="80dp" android:layout_height="50dp" android:layout_column="1" android:layout_row="2" />
        
    </GridLayout>
複製代碼

效果圖

能夠看出來經過子控件使用Column和Row屬性能夠指定其在網格中的位置

相關文章
相關標籤/搜索