天天看點

Android實戰技巧之三十四:用TableLayout僞裝表格顯示資料

先來上個圖,最終效果圖。

Android實戰技巧之三十四:用TableLayout僞裝表格顯示資料

每個Layout都有自己最适用的場景,而TableLayout往往用在中規中矩的輸入界面,比如下圖:

Android實戰技巧之三十四:用TableLayout僞裝表格顯示資料

TableLayout下嵌套TableRow組成Table的行;每個TableRow中布局不同的控件,組成Table的列。上圖就是兩列四行,而我們要做的表格就是三行三列。

TableLayout是沒有提供邊框的,要作成表格的效果需要我們使用一些技巧:

整個TableLayout的背景色設成黑色,而每個Table的cell(其實就是每個控件)的背景色設成白色,然後cell的邊距根據情況設定一個px,就可以了。

布局代碼如下:

<TableLayout
        android:id="@+id/table"
        android:layout_below="@id/spinner"
        android:layout_width="wrap_content"
        android:background="@color/black"
        android:layout_height="wrap_content">
        <TableRow
            android:layout_marginTop="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginLeft="1dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView android:text="姓名"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_width="@dimen/table_item1_width"
                android:layout_height="wrap_content" />
            <TextView android:text="學校"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="1dp"
                android:layout_width="@dimen/table_item2_width"
                android:layout_height="wrap_content" />
            <TextView android:text="專業"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="1dp"
                android:layout_width="@dimen/table_item3_width"
                android:layout_height="wrap_content" />
        </TableRow>
        <TableRow
            android:layout_marginTop="1dp"
            android:layout_marginBottom="1dp"
            android:layout_marginRight="1dp"
            android:layout_marginLeft="1dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView android:text="張飛"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_width="@dimen/table_item1_width"
                android:layout_height="wrap_content" />
            <TextView android:text="野雞大學"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="dp"
                android:layout_width="@dimen/table_item2_width"
                android:layout_height="wrap_content" />
            <TextView android:text="體育系"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="dp"
                android:layout_width="@dimen/table_item3_width"
                android:layout_height="wrap_content" />
        </TableRow>
        <TableRow
            android:layout_marginBottom="dp"
            android:layout_marginRight="dp"
            android:layout_marginLeft="dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <TextView android:text="劉備"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_width="@dimen/table_item1_width"
                android:layout_height="wrap_content" />
            <TextView android:text="皇家學院"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="dp"
                android:layout_width="@dimen/table_item2_width"
                android:layout_height="wrap_content" />
            <TextView android:text="經濟"
                android:textSize="@dimen/table_text_size"
                android:background="@color/white"
                android:layout_marginLeft="dp"
                android:layout_width="@dimen/table_item3_width"
                android:layout_height="wrap_content" />
        </TableRow>
    </TableLayout>