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