2012-06-19 32 views
2

我遇到了一些問題,因爲我希望兩個TextViews並排佈局,即使第一個TextView有幾行文本。理想情況下,下一個TextView應該緊隨其後。這是一個有點難以解釋,所以我做了這個圖片來說明吧:在多行中顯示兩個TextViews

(第一TextView中包含一個標題,第二TextView中包含一年)

我現在我一直在嘗試一些不同的東西,無論是佈局黑客還是使用Html.fromHtml(),但目前爲止還沒有任何工作。這可能是不可能的,但我只是想確定。

+0

它幫助,如果我們可以看到一些代碼 – Azulflame

+0

@Michell樸:你爲什麼不只是在今年追加的稱號? – Squonk

+0

@azulflame不是。這是一個帶有兩個嵌套TextView的簡單LinearLayout。 –

回答

5

這聽起來像Spannable工作不會工作。正如你已經注意到做兩個視圖的問題是你的兩行代碼中的TextView的邊界仍然是一個矩形,所以在文本的末尾放置第二個視圖會變得棘手。 HTML可以用於簡單標籤(粗體,下劃線,標題),但不太靈活。

解決方案是使用Spannable來創建具有適用於每個「跨度」的特定格式的內容段的文本。事實證明,那麼你可以把整個結果都放在一個單獨的TextView中。喜歡的東西:

TextView tv; //Defined somewhere else 

SpannableStringBuilder resultBuilder = new SpannableStringBuilder(); 
SpannableString item = new SpannableString("Long and Fancy Movie Title Here"); 
item.setSpan(new AbsoluteSizeSpan(18, true), 0, item.length(), 0); 
resultBuilder.append(item); 

SpannableString item = new SpannableString("(2011)"); 
item.setSpan(new AbsoluteSizeSpan(12, true), 0, item.length(), 0); 
resultBuilder.append(item); 

tv.setText(resultBuilder, TextView.BufferType.SPANNABLE); 

有在android.text.style一噸的不同跨度的定義,以上僅僅是創建在同一個字符串兩個不同的文本大小的例子。你應該能夠得到你想要的這個,TextAppearanceSpanTypefaceSpan,或其他一些組合。

HTH

+0

謝謝,這個作品非常漂亮! –

1

兩個並排的TextView中的RelativeLayout可能做的伎倆,我不明白爲什麼Html.fromHtml如果添加正確的HTML格式

+1

RelativeLayout不起作用。它會將第二個TextView移動到第一個TextView的右側。如果第一行有多行文本,那麼可能會在第一行和第二行之間留下巨大差距。對於'Html.fromHtml()'我使用了'(2011)'作爲第二部分,並且它完全駁回了'小'標籤。 –

+0

這可能有幫助。 http://stackoverflow.com/questions/1529068/is-it-possible-to-have-multiple-styles-inside-a-textview – akshaydashrath

+0

是的,我一直在看,但就像我說我不能不要讓'小'標籤工作。 –