如何在android中的布局中对齐文本

use*_*924 2 android android-layout android-layout-weight

我想在ListView行中显示一些具有以下对齐方式的文本:

Mike      10pt $1,233,500
Mike2    200pt $1,2,500
Holly     10pt $4500
Run Code Online (Sandbox Code Playgroud)

但是当我尝试时,我得到了这个:

   Mike        10pt   $1,233,500
    Mike2    200pt       $12,500
    Holly            10pt  $4500
Run Code Online (Sandbox Code Playgroud)

我的布局文件如下.我究竟做错了什么?

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:background="@drawable/dl005_textfield_selected"
        android:paddingBottom="5dp" >

        <TextView
            android:id="@+id/Name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:text="Mike"
            android:layout_weight="1"
            android:textColor="#888888" />

        <TextView
            android:id="@+id/score"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:gravity="right"
            android:text="10pt"
            android:textColor="#3498db" />

        <TextView
            android:id="@+id/myid"
            android:layout_width="50dp"
            android:layout_height="wrap_content"
            android:text="$1,233,500"
            android:textStyle="bold"
            android:textSize="18sp"
            android:layout_weight="1"
            android:gravity="right"
            android:textColor="#3498db" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >
    </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Rav*_*yal 5

你应该使用一个TableLayout代替它将其子视图定位到行和列.另请注意,您需要android:gravity="right"从第三个中删除,TexView因为您需要将其内容保持对齐.

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1" >

    <TableRow
        android:background="@drawable/dl005_textfield_selected"
        android:paddingBottom="5dp" >

        <TextView
            android:id="@+id/Name"
            android:layout_marginLeft="10dp"
            android:text="Mike"
            android:textColor="#888888" />

        <TextView
            android:id="@+id/score"
            android:padding="10dp"
            android:gravity="right"
            android:text="10pt"
            android:gravity="right"
            android:textColor="#3498db" />

        <TextView
            android:id="@+id/myid"
            android:text="$1,233,500"
            android:textStyle="bold"
            android:textSize="18sp"
            android:textColor="#3498db" />

    </TableRow>

    ...

</TableLayout>
Run Code Online (Sandbox Code Playgroud)

您还需要删除layout_width子项上的属性,TextViews因为它们始终设置为MATCH_PARENT.您可以将各列设置为strechableshrinkable.