Pro Android學習筆記(二八) 使用者介面和控制(16) GridLayout
阿新 • • 發佈:2018-12-21
網格佈局: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
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: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:src="@drawable/png18"/>
</GridLayout>
GridLayout的靈活支出在於可以指定view方式的位置,執行有些問題不放置內容,如上面的例子。行號和列號均從0開始計算。此外,如果一個cell需要佔據多個位置,可以用android:layout_rowspan和android:layout_columnspan來設定。
GridLayout最大的問題就是整個表格的所佔空間不確定,行距由該行中最大的cell的高度決定,列距由該列最寬的cell決定。在上面的例子中,有部分控制元件超出了螢幕。每個cell的大小預設為wrap_content,如果我們設定為match_parent,則該cell的大小為整屏。