TableLayout 繼承自 LinearLayout,以 row 與 column 來配置元件。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3"/> </TableRow> <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="4"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="6"/> </TableRow> <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="7"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="8"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="9"/> </TableRow> <Button android:text="0"/> </TableLayout>
因為 TableLayout 以 row 為主,所以 column 數由最多 cell 的 row 決定。
除了 TableRow 以外,android.widget.View 也可以作為 TableLayout 的子元件,如上面的 0 按鈕。
TableLayout 子元件的寬度一概與 table 的寬度一致,所以子元件的 layout_width 一律為 fill_content,不可為 wrap_content(設了也沒用),如上面的 0 按鈕,但是 layout_height 是可以自訂的。
stretchColumns - 指定延伸寬度的 column,星號表示全部,或者以逗號區隔從 0 算起的 column index。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="*"> ... </TableLayout>shrinkColumns - 指定不延伸寬度的 column,星號表示全部,或者以逗號區隔從 0 算起的 column index。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="0,2" android:shrinkColumns="1"> ... </TableLayout>shrinkColumns 為預設狀態,所以上面的範例只使用 android:stretchColumns="0,2" 也有一樣的效果。
collapseColumns - 指定不顯示的 column,星號表示全部,或者以逗號區隔從 0 算起的 column index。
layout_span - 設定單一 cell 可以跨多個 column。
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:stretchColumns="*"> ... <TableRow> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_span="2" android:text="="/> </TableRow> </TableLayout>
沒有留言:
張貼留言