平等对齐文本

时间:2013-04-01 18:45:19

标签: android android-layout textview

这个问题可能会在早些时候提出,但我真的不知道如何搜索它。

我想要实现的是这样的。

city     : some city
state    : some state
pincode  : some pin code
phone no : some phone number

城市:是一个文本视图,一些城市是第二个文本视图。两者都是线性布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                              android:orientation="horizontal"
                              android:layout_width="wrap_content"
                              android:layout_height="wrap_content">
                <TextView android:text="City : "
                          android:textSize="15sp"
                          android:layout_height="wrap_content"
                          android:layout_width="wrap_content"
                />
                <TextView android:text="Some city"
                          android:textSize="15sp"
                          android:id="@+id/lblPermanentCity"
                          android:layout_height="wrap_content"
                          android:layout_width="wrap_content"
                />
            </LinearLayout>

任何帮助都会受到赞赏

3 个答案:

答案 0 :(得分:1)

我不认为你可以用两个TextView来解决这个问题。问题是标题(“城市”)左对齐,冒号右对齐。

如果您可以使用左对齐冒号,则可以使用layout_weight属性在所有行上使标题列的大小相同,如下所示:

...
<TextView android:text="City:"
          android:layout_height="wrap_content"
          android:layout_width="0"
          android:layout_weight="40"/>
<TextView android:text="some city"
          android:layout_height="wrap_content"
          android:layout_width="0"
          android:layout_weight="60"/>

这将使标题列的宽度为40%,值列为宽度的60%。确保LinearView layout_width match_parentwrap_content

如果你真的必须在中间放置冒号,只需为冒号添加第三个TextView,给它一个固定的宽度({{1}}具有相同的内容就足够了)

答案 1 :(得分:1)

你可以每行使用三个TextView,一个用于城市,州等,一个用于“:”,一个用于“某个城市”等。然后将它们放在{{1}中并将你的冒号(:)对齐到最大RelativeLayout的右边缘(可能是你的“电话号码”)。

答案 2 :(得分:1)

为什么不表格布局。我认为这是解决问题的最佳方法。