Snake
Snake

Reputation: 14658

Table layout column spacing

I am trying to format my tablelayout but I dont seem to get things working quite well. I have 4 columns that I need them spaced as nice as possible. I was thinking really having 3 columns with same width and the last column taking the rest of the space. The last column is ok to wrap around in 2 or more lines but the first 3 columns has to be single line and NOT truncated. Here is my code

 <TableLayout android:id="@+id/tlMylayout" android:layout_width="fill_parent" android:layout_height="wrap_content" 
         android:stretchColumns="*"  android:shrinkColumns="*" >
        <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content">

            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/showtext_style" android:text="col1"  />            
            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/showtext_style" android:text="col2"  />
            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/showtext_style" android:text="col3"  />            
            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" style="@style/showtext_style" android:text="lastCol"  />
        </TableRow>
        <TableRow  android:layout_width="fill_parent" android:layout_height="wrap_content">

            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="2011-01-01 14:59"  />          
             <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:text="50"  />
            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:text="0.57"  />           
            <TextView android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="this is the last one and can be very long string if I want it to be"  />

        </TableRow>


    </TableLayout>

Upvotes: 0

Views: 5905

Answers (1)

Krrishnaaaa
Krrishnaaaa

Reputation: 689

Try

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tlMylayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:shrinkColumns="*"
android:stretchColumns="*" >

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

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="col1" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="col2" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="col3" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="lastCol" />
</TableRow>

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

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="2011-01-01 14:59" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:singleLine="true"
        android:text="50" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:singleLine="true"
        android:text="0.57" />

    <TextView
        android:layout_width="0"
        android:layout_height="wrap_content"
        android:layout_weight=".25"
        android:gravity="center"
        android:text="this is the last one and can be very long string if I want it to be" />
</TableRow>

I removed layout_gravity and added layout_weight to TextView

Upvotes: 2

Related Questions