Search code examples
androidwidthandroid-tablelayout

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>


Solution

  • 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