Grid Layout 網格佈局

GridLayout 是所有佈局中最為靈活的一種。使用任意的網格來放置視圖。透過行列的延伸可以建立出複雜的版面,若使用RelativeLayout 需要通過複雜設定來設計。

  • 有重覆元件的時候,可優先使用GridLayout
  • 需要建立垂直與水平兩個方向對齊時
  • 可以自己設置佈局中組件的排列方式
  • 可以自定義網格佈局有多少行,多少列
  • 可以直接設置組件位於某行某列
  • 可以設置組件橫跨幾行或者幾列
<android.support.v7.widget.GridLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"
    app:columnCount="3"
    app:rowCount="4"
    app:useDefaultMargins="true">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="3"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="4"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_columnSpan="2"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="6"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="7"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowSpan="2"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="8"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="9"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="9"
        app:layout_columnWeight="1"
        app:layout_gravity="fill"
        app:layout_rowWeight="1"/>

compile 'com.android.support:gridlayout-v7:24.2.1'
</android.support.v7.widget.GridLayout>

使用GridLayout注意事項

因為GirdLayout是4.0後才推出的,所以minSDK版本要改為14或者以上的版本,如果需向下相容的話,可導入Support Librarycom.android.support:gridlayout-v7

results matching ""

    No results matching ""