如何在 android 中对齐布局中的文本
How to align the texts in a layout in android
我想在 ListView 行中显示一些文本,对齐方式如下:
Mike 10pt ,233,500
Mike2 200pt ,2,500
Holly 10pt 00
但是当我尝试时,我得到了这个:
Mike 10pt ,233,500
Mike2 200pt ,500
Holly 10pt 00
我的布局文件如下。我做错了什么?
<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=",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>
您应该使用 TableLayout
而不是将其 children 视图定位到行和列中。另请注意,您需要从第三个 TexView
中删除 android:gravity="right"
,因为您需要其内容左对齐。
<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=",233,500"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="#3498db" />
</TableRow>
...
</TableLayout>
您还需要删除 child TextViews
上的 layout_width
属性,因为它们始终设置为 MATCH_PARENT
。您将各个列设置为 strechable 或 shrinkable。
我想在 ListView 行中显示一些文本,对齐方式如下:
Mike 10pt ,233,500
Mike2 200pt ,2,500
Holly 10pt 00
但是当我尝试时,我得到了这个:
Mike 10pt ,233,500
Mike2 200pt ,500
Holly 10pt 00
我的布局文件如下。我做错了什么?
<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=",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>
您应该使用 TableLayout
而不是将其 children 视图定位到行和列中。另请注意,您需要从第三个 TexView
中删除 android:gravity="right"
,因为您需要其内容左对齐。
<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=",233,500"
android:textStyle="bold"
android:textSize="18sp"
android:textColor="#3498db" />
</TableRow>
...
</TableLayout>
您还需要删除 child TextViews
上的 layout_width
属性,因为它们始终设置为 MATCH_PARENT
。您将各个列设置为 strechable 或 shrinkable。