2014-10-30 85 views
0

我有一个listvew,它有三个textview。我不知道如何使它们从而使输出看起来像:Android:在列表视图中对齐textviews

abcded -> xxxx    aaa 
ddd  -> qqq    bbb 
alkdladd -> hzhdl    ccc 

而不是什么我目前得到:

abcded -> xxxx    aaa 
ddd -> qqq     bbb 
alkdladd -> hzhdl    ccc 

第1行textviews是:

textview1 = abcded 
textview2 = -> xxxx 
textview3 = aaa 

问题在于中间的textview对齐。我该怎么去做呢?

+0

嘿,是“abcded - > xxxx”在列表视图中进行的字符串还是3个单独的listviews? – jvrodrigues 2014-10-30 21:20:09

+0

@jvrodrigues - 嗨,刚刚编辑了这个问题。 – user2260040 2014-10-30 21:22:31

+0

@ zgc7009完全解答了你的问题!祝你好运 – jvrodrigues 2014-10-30 21:25:45

回答

2

您拥有的一个选项是简单地让您的列表项目布局包含LinearLayout并使用权重。例如:

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

    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:singleLine="true" 
     android:maxLines="1" 
     android:ellipsize="end"> /> 

    <TextView 
     android:id="@+id/center_text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="4" 
     android:singleLine="true" 
     android:maxLines="1" 
     android:ellipsize="end" /> 

    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:singleLine="true" 
     android:maxLines="1" 
     android:ellipsize ="end" /> 
</LinearLayout> 

这使得您只希望您的每个视图中的文本都是单行。它将ellipsize(添加三个点到最后)的任何字符串,否则会换行到另一行。您可以根据自己的需要揉捏重量,以获得所需的外观。

可能有其他方式使用诸如RelativeLayout之类的东西,但重量(我发现)是确保您的应用程序通用对齐的最佳方式。

+0

谢谢。是的,我希望他们每个人的文本都在一行中。我会尝试你的建议,并让你知道结果。 – user2260040 2014-10-30 21:25:36

+0

@ user2260040我已经完成了很多布局,如果您遇到任何问题,只要让我知道,应该能够解决您可能遇到的任何问题。 – zgc7009 2014-10-30 21:30:09

+0

非常感谢。会做。 – user2260040 2014-10-30 21:35:16