表格布局技巧

时间:2014-12-09 08:52:56

标签: android android-layout tablelayout android-tablelayout

我想创建一个像这张图片的布局:

enter image description here

我尝试创建这样的东西:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:stretchColumns="*" >

    <TableRow
        android:id="@+id/sth"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TextView android:text="hello" />

        <TextView android:text="hello2" />

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:stretchColumns="*" >

            <TableRow
                android:id="@+id/sth1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <TextView android:text="hello3" />

                <TextView android:text="hello4" />

                <TextView android:text="hello5" />
            </TableRow>

            <TableRow
                android:id="@+id/sth2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >

                <TextView android:text="test1" />

                <TextView android:text="test2" />

                <TextView android:text="test3" />
            </TableRow>
        </TableLayout>
    </TableRow>

</TableLayout>

但结果是这一个:

enter image description here

正如您所看到的,三个TextView消失了,我对此一无所知。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您也可以使用android:layout_column =“”属性执行此操作,将列号放在此属性中,以0索引开头

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/hello"
            android:layout_column="0"
            android:padding="5dip"
            android:text="hello" />

        <TextView
            android:id="@+id/hello2"
            android:layout_column="1"
            android:padding="5dip"
            android:text="hello2" />


        <TextView
            android:id="@+id/hello3"
            android:layout_column="2"
            android:padding="5dip"
            android:text="hello3" />

        <TextView
            android:id="@+id/hello4"
            android:layout_column="3"
            android:padding="5dip"
            android:text="hello4" />

        <TextView
            android:id="@+id/hello5"
            android:layout_column="4"
            android:padding="5dip"
            android:text="hello5" />
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/test1"
            android:layout_column="2"
            android:padding="5dip"
            android:text="test1" />

        <TextView
            android:id="@+id/test2"
            android:layout_column="3"
            android:padding="5dip"
            android:text="test2" />

        <TextView
            android:id="@+id/test3"
            android:layout_column="4"
            android:padding="5dip"
            android:text="test3" />
    </TableRow>

</TableLayout>

答案 1 :(得分:0)

我将代码更改为:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:stretchColumns="*" >

    <TableRow
        android:id="@+id/sth"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
         >

        <TextView android:text="hello" />

        <TextView android:text="hello2" />

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical"
            android:stretchColumns="*" >

            <TableRow
                android:id="@+id/sth1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
>

                <TextView android:text="hello3" />

                <TextView android:text="hello4" />

                <TextView android:text="hello5" />
            </TableRow>

            <TableRow
                android:id="@+id/sth2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:layout_weight="1"
                >

                <TextView android:text="test1" />

                <TextView android:text="test2" />

                <TextView android:text="test3" />
            </TableRow>
            <TableRow
                android:id="@+id/sth3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" 
                android:layout_weight="1"
                >

                <TextView android:text="test4" />

                <TextView android:text="test5" />

                <TextView android:text="test6" />
            </TableRow>
        </TableLayout>
    </TableRow>
</TableLayout>

问题是,我添加android:layout_weight="1"并且它有效! 感谢Darkie的建议。