2014-10-30 86 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