1. 程式人生 > >Pro Android學習筆記(二八) 使用者介面和控制(16) GridLayout

Pro Android學習筆記(二八) 使用者介面和控制(16) GridLayout

網格佈局:GridLayout

我個人覺得GridLayout的設計還不很完善,每個網格的大小,由填充的cell決定,即預設是wrap很容易整個GridLayout超出螢幕。下面是一個例子:

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:orientation="vertical"
    android:rowCount

="4"
    android:columnCount="2"> <!-- 設計4×2的表格 -->
    <ImageView android:layout_row="0"
       android:layout_column="1"
        android:scaleType="fitCenter"
        android:src="@drawable/png02"/> <!-- 可以指定放置的位置 -->
    <ImageView android:layout_row="1"
       android:layout_column="0"
        android:scaleType="fitCenter"
        android:src="@drawable/png04"/>
    <ImageView android:layout_row="2"
        android:layout_column="1"

        android:scaleType="fitCenter"
        android:src="@drawable/png08"/>
    <ImageView android:layout_row="3"
        android:layout_column="0"
        android:scaleType="fitCenter"
        android:src="@drawable/png18"/>
</GridLayout>

GridLayout的靈活支出在於可以指定view方式的位置,執行有些問題不放置內容,如上面的例子。行號和列號均從0開始計算。此外,如果一個cell需要佔據多個位置,可以用android:layout_rowspan和android:layout_columnspan來設定。

GridLayout最大的問題就是整個表格的所佔空間不確定,行距由該行中最大的cell的高度決定,列距由該列最寬的cell決定。在上面的例子中,有部分控制元件超出了螢幕。每個cell的大小預設為wrap_content,如果我們設定為match_parent,則該cell的大小為整屏。