Jedi Schmedi
Jedi Schmedi

Reputation: 818

How to spread out textviews with different lengths evenly?

I want to spread out my textviews with different length in the listView. This is what I got so far:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="horizontal">

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>

The layout I want to achieve is something like this:

date | time | score | distance | altitude  

In numbers:

dd/mm/yyyy | hh:mm:ss | [0-1000] | [0-100] | [0-100]

10 spaces | 8 spaces | 4 spaces | 3 spaces | 3spaces

And this is how it looks now, sadly:

Upvotes: 0

Views: 443

Answers (2)

CodeWarrior
CodeWarrior

Reputation: 5176

You can use the Android's weight property for that

10 spaces | 8 spaces | 4 spaces | 3 spaces | 3spaces

Hence 10 + 8 + 4 + 3 + 3(For TextView) + 4(For View) = 32

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:weightSum="32">

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

     <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="8"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <View
        android:layout_width="2dp"
        android:layout_weight="1"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    </LinearLayout>

Upvotes: 3

Pankaj Deshpande
Pankaj Deshpande

Reputation: 502

try this :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="horizontal">

    <TextView
        android:id="@+id/dateTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />
<View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>
 <TextView
        android:id="@+id/timeTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="4"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />
<View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>
 <TextView
        android:id="@+id/scoreTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="6"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />
<View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>
 <TextView
        android:id="@+id/distanceTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />
<View
        android:layout_width="2dp"
        android:layout_height="match_parent"
        android:layout_marginBottom="0dp"
        android:layout_marginTop="0dp"
        android:background="#EF6C00" >
    </View>
 <TextView
        android:id="@+id/altitudeTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:layout_marginTop="5dp"
        android:adjustViewBounds="true"
        android:gravity="center_horizontal|center_vertical"
        android:text="@string/empty_int"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

Upvotes: 2

Related Questions