4

我遇到了一些问题,因为我希望两个 TextView 并排布局,即使第一个 TextView 有几行文本。理想情况下,下一个 TextView 应该紧随其后。这有点难以解释,所以我制作了这张图片来说明它:

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

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

4

2 回答 2

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,以上只是在同一字符串中创建两种不同文本大小的示例。TextAppearanceSpan你应该能够从这个、TypefaceSpan、 或其他组合中得到你想要的东西。

高温高压

于 2012-06-19T23:40:15.243 回答
1

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

于 2012-06-19T23:24:21.863 回答