如何在android文本视图中对齐文本

时间:2014-05-15 02:30:49

标签: android android-layout android-listview android-linearlayout

例如,我有一个ListView,对于每一行,数据都是这样的

Name: Mr.ABC
Address: Flat A, 25/F, Block 2, 
USA....
Gender: Male
Hobbies: Football, Baseball.....
.....

以上就是它目前的样子,我使用4个文本视图来表示每个数据

 <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="9"
        android:orientation="vertical"
        android:paddingLeft="5dp" >

        <TextView
            android:id="@+id/resultName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultLang"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultType"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultOrg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultYear"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="16sp" />
    </LinearLayout>

问题是如何将文本对齐?

Name:    Mr.ABC
Address: Flat A, 25/F, Block 2, 
         USA....
Gender:  Male
Hobbies: Football, Baseball.....
         .....

感谢您的帮助

更新

  <TableLayout
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="9"
    android:paddingLeft="5dp"
    android:shrinkColumns="*"
    android:stretchColumns="*" >

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

        <TextView
            android:layout_weight="1"
            android:text="@string/search_name"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultName"
            android:layout_weight="1"
            android:textSize="16sp" />
    </TableRow>

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

        <TextView
            android:layout_weight="1"
            android:text="@string/search_lang"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultLang"
            android:layout_weight="1"
            android:textSize="16sp" />
    </TableRow>

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

        <TextView
            android:layout_weight="1"
            android:text="@string/search_type"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultType"
            android:layout_weight="1"
            android:textSize="16sp" />
    </TableRow>

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

        <TextView
            android:layout_weight="1"
            android:text="@string/search_org"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultOrg"
            android:layout_weight="1"
            android:textSize="16sp" />
    </TableRow>

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

        <TextView
            android:layout_weight="1"
            android:text="@string/search_yr"
            android:textSize="16sp" />

        <TextView
            android:id="@+id/resultYear"
            android:layout_weight="1"
            android:textSize="16sp" />
    </TableRow>
</TableLayout>

以上是更新的代码,但问题是,因为它是listview,我发现左侧宽度不相等。它就像是例如

Name:    Mr.ABC
Address: Flat A, 25/F, Block 2, 
         USA....
Gender:  Male
Hobbies: Football, Baseball.....
         .....

Name:        Mr.Asfsafasfdfsd
Address:     Flat V, 25/F, Block 2, 
             USA....
Gender:      Female
Hobbies:     Basketball.....
             .....

Name:      Mr.WQWRWEE
Address:   Flat V, 25/F, Block 2, 
           USA....
Gender:    Male
Hobbies:   Baseball.....
           .....

2 个答案:

答案 0 :(得分:2)

基本上你想要的是一个包含两列行的表。我猜,你应该使用TableLayout来布局twi TextViews。

祝你好运

答案 1 :(得分:2)

// Try this way,hope this will help you...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:id="@+id/txtNameLable"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="0.25"
            android:textSize="16sp"
            android:text="Name : "/>
        <TextView
            android:id="@+id/txtNameValue"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
            android:layout_marginLeft="3dp"
            android:textSize="16sp"
            android:text="Mr.ABC"/>
        </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">
        <TextView
            android:id="@+id/txtAddressLable"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="0.25"
            android:textSize="16sp"
            android:text="Address : "/>
        <TextView
            android:id="@+id/txtAddressValue"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
            android:layout_marginLeft="3dp"
            android:textSize="16sp"
            android:text="Flat A, 25/F, Block 2,\nUSA...."/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">
        <TextView
            android:id="@+id/txtGenderLable"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="0.25"
            android:textSize="16sp"
            android:text="Gender : "/>
        <TextView
            android:id="@+id/txtGenderValue"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
            android:layout_marginLeft="3dp"
            android:textSize="16sp"
            android:text="Male"/>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp">
        <TextView
            android:id="@+id/txtHobbiesLable"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="0.25"
            android:textSize="16sp"
            android:text="Hobbies : "/>
        <TextView
            android:id="@+id/txtHobbiesValue"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.75"
            android:layout_marginLeft="3dp"
            android:textSize="16sp"
            android:text="Football,Baseball \n......"/>
    </LinearLayout>
</LinearLayout>