跨多行显示两个内联TextView

时间:2012-06-19 23:21:11

标签: android textview

我遇到了一个问题,因为即使第一个TextView有几行文本,我也希望两个TextView并排布局。理想情况下,下一个TextView应该紧跟在之后。这有点难以解释,所以我已经用这张照片来说明它:

(第一个TextView包含标题,第二个TextView包含一年)

我现在一直在尝试一些不同的东西,包括布局黑客和使用Html.fromHtml(),但到目前为止还没有任何工作。这可能是不可能的,但我只是想确定。

2 个答案:

答案 0 :(得分:5)

这听起来像是Spannable的工作。正如您已经注意到,执行两个视图的问题是两行示例中TextView的边界仍然是一个矩形,因此在文本末尾布置第二个视图会变得棘手。 HTML可以用于简单的标签(粗体,下划线,标题),但不太灵活。

解决方案是使用Spannable创建内容的文本,并将特定格式应用于每个“span”。事实证明,您可以将整个结果直接粘贴到单个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

答案 1 :(得分:1)

在RelativeLayout中并排的两个TextView可能会起作用,我不明白为什么如果添加正确的html格式,Html.fromHtml将不起作用