Saman Gholami
Saman Gholami

Reputation: 3512

Tabular layout tricks

I want to create a layout like this picture:

enter image description here

I tried to create something like this:

<?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>

But the result is this one:

enter image description here

As you can see, three TextViews are disappeared and I have no idea about that. What should I do?

Upvotes: 0

Views: 134

Answers (2)

Rahul Patidar
Rahul Patidar

Reputation: 406

you can also do this by using android:layout_column="" property, put column number in this property starting with 0 index

<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>

Upvotes: 1

Saman Gholami
Saman Gholami

Reputation: 3512

I changed code to this:

<?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>

The thing is, I add android:layout_weight="1" and it works! Thanks to Darkie for advice.

Upvotes: 0

Related Questions