user2901219 user2901219 - 26 days ago 9
Android Question

Table layout with uneven columns widths

In my android application, I am trying to create a table with 4 columns. The first column contains serial number. So it can be as small as possible in width. Columns 2,3,4 have data and hence should equally share the rest of width space available.

I have tried many combinations of width/height, stretchcolumns with no use. Can you please tell me how to do this?

This is my code: look at table_vipra:

@Manishika,
I tried similar code, but didn't work. For instance look at table : table_vipra in code below. I'm not able to get table as I desired.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />

<Spinner
android:id="@+id/spinner2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<Spinner
android:id="@+id/spinner3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" />

<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>

<TableLayout
android:id="@+id/table_vipra"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#d65906">

<TextView
android:id="@+id/textView_table_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="@string/vipra_table_header" >

</TextView>

<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#d65906" >

<TextView
android:id="@+id/textView1a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="1" >
</TextView>

<TextView
android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView2a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="2" >
</TextView>
<TextView
android:id="@+id/textView21"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:weight="1"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:weight="1"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView23"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:weight="1"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView3a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="3" >
</TextView>
<TextView
android:id="@+id/textView31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView4a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="4" >
</TextView>
<TextView
android:id="@+id/textView41"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView42"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView43"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView5a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="5" >
</TextView>
<TextView
android:id="@+id/textView51"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView52"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView53"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow6"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView6a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="6" >
</TextView>
<TextView
android:id="@+id/textView61"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView62"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView63"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow7"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView7a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="7" >
</TextView>
<TextView
android:id="@+id/textView71"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView72"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView73"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

<TableRow
android:id="@+id/tableRow8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="1dip"
android:background="#d65906" >
<TextView
android:id="@+id/textView8a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:padding="2dip"
android:text="!" >
</TextView>
<TextView
android:id="@+id/textView81"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView82"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:background="#fcc480"
android:weight="1"
android:padding="2dip"
android:text="TextView" >
</TextView>

<TextView
android:id="@+id/textView83"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dip"
android:weight="1"
android:background="#fcc480"
android:padding="2dip"
android:text="TextView" >
</TextView>
</TableRow>

</TableLayout>
</LinearLayout>

<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout1"
android:layout_below="@+id/linearLayout1"
android:layout_marginTop="18dp"
android:textSize="8px"
android:ems="10" >

<requestFocus />
</EditText>



Answer

Try using layout:weight with your Row Views

eg.

   <TableLayout
    android:id="@+id/table_vipra"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#d65906" >

    <TextView
        android:id="@+id/textView_table_header"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="2dip"
        android:background="#fcc480"
        android:gravity="center"
        android:padding="2dip"
        android:text="@string/vipra_table_header" >
    </TextView>

    <TableRow
        android:id="@+id/tableRow1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="2dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView1a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="1" >
        </TextView>

        <TextView
            android:id="@+id/textView11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView2a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="2" >
        </TextView>

        <TextView
            android:id="@+id/textView21"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView23"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView3a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="3" >
        </TextView>

        <TextView
            android:id="@+id/textView31"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView32"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView33"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView4a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="4" >
        </TextView>

        <TextView
            android:id="@+id/textView41"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView42"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView43"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView5a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="5" >
        </TextView>

        <TextView
            android:id="@+id/textView51"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView52"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView53"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView6a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="6" >
        </TextView>

        <TextView
            android:id="@+id/textView61"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView62"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView63"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow7"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView7a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="7" >
        </TextView>

        <TextView
            android:id="@+id/textView71"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView72"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView73"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

    <TableRow
        android:id="@+id/tableRow8"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dip"
        android:background="#d65906" >

        <TextView
            android:id="@+id/textView8a"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="!" >
        </TextView>

        <TextView
            android:id="@+id/textView81"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView82"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>

        <TextView
            android:id="@+id/textView83"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="2dip"
            android:layout_weight="1"
            android:background="#fcc480"
            android:padding="2dip"
            android:text="TextView" >
        </TextView>
    </TableRow>

</TableLayout>

What i got with the above data

enter image description here