android之跨多行显示两个 TextViews

kevingrace 阅读:267 2025-06-02 22:19:02 评论:0

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



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

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

请您参考如下方法:

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

解决方法是使用 Spannable使用应用于每个“跨度”的特定格式来创建内容 fragment 的文本。事实证明,您可以将整个结果直接粘贴到单个 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 ,或其他组合。

高温高压


标签:Android
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号