Search code examples
androidalignmentandroid-tablelayout

Android Table Layout Alignment


I am using Table Layout to display data as shown below. enter image description here

What i want to do ?

I want the Text in the second column to be aligned to the left and the text should wrap and be displayed in the next line and over flow as you see in the image.

Code:

    <TableLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tableLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp" >

            <ImageView
                android:id="@+id/place_category_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:contentDescription="ss"
                android:paddingRight="10dp"
                android:src="@drawable/icon_category"
                android:textAlignment="textStart" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:text="230 kms"
                android:textSize="16sp" >
            </TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp" >

            <ImageView
                android:id="@+id/place_category_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:contentDescription="ss"
                android:paddingRight="10dp"
                android:src="@drawable/icon_category"
                android:textAlignment="textStart" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:text="Hill Station, Wild Life"
                android:textSize="16sp" >
            </TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp" >

            <ImageView
                android:id="@+id/place_category_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:contentDescription="ss"
                android:paddingRight="10dp"
                android:src="@drawable/icon_category"
                android:textAlignment="textStart" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:text="Summer 23-40°C, Winter 10-32°C"
                android:textSize="16sp" >
            </TextView>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp" >

            <ImageView
                android:id="@+id/place_category_icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:contentDescription="ss"
                android:paddingRight="10dp"
                android:src="@drawable/icon_category"
                android:textAlignment="textStart" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center"
                android:text="Tippus Drop, Tippus Summer Residence, Brahmashram, Cycling, Paragliding"
                android:textSize="16sp" >
            </TextView>
        </TableRow>
    </TableLayout>

What it should look like

enter image description here


Solution

  • The easiest way I can think of is to wrap each TableRow content with a LinearLayout like this:

    <TableLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
    
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp" >
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" >
    
                    <ImageView
                        android:id="@+id/place_category_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:contentDescription="ss"
                        android:paddingRight="10dp"
                        android:src="@drawable/ic_launcher" />
    
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:text="230 kms"
                        android:textSize="16sp" >
                    </TextView>
                </LinearLayout>
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp" >
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" >
    
                    <ImageView
                        android:id="@+id/place_category_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:contentDescription="ss"
                        android:paddingRight="10dp"
                        android:src="@drawable/ic_launcher" />
    
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:text="Hill Station, Wild Life"
                        android:textSize="16sp" >
                    </TextView>
                </LinearLayout>
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp" >
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" >
    
                    <ImageView
                        android:id="@+id/place_category_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:contentDescription="ss"
                        android:paddingRight="10dp"
                        android:src="@drawable/ic_launcher" />
    
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:text="Summer 23-40°C, Winter 10-32°C"
                        android:textSize="16sp" >
                    </TextView>
                </LinearLayout>
            </TableRow>
    
            <TableRow
                android:id="@+id/tableRow2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp" >
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent" >
    
                    <ImageView
                        android:id="@+id/place_category_icon"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:contentDescription="ss"
                        android:paddingRight="10dp"
                        android:src="@drawable/ic_launcher" />
    
                    <TextView
                        android:id="@+id/textView2"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_gravity="center"
                        android:text="Tippus Drop, Tippus Summer Residence, Brahmashram, Cycling, Paragliding"
                        android:textSize="16sp" >
                    </TextView>
                </LinearLayout>
            </TableRow>
        </TableLayout>
    

    And this is the result:

    layout

    Hope I correctly understood your requirements.