【问题标题】:Show two TextViews inline across multiple lines跨多行显示两个 TextViews
【发布时间】:2012-06-20 07:40:15
【问题描述】:

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

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

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

【问题讨论】:

  • 如果我们能看到一些代码会有帮助
  • @Michell Bak : 为什么不直接在标题后面加上年份?
  • @azulflame 不是真的。这是一个带有两个嵌套 TextView 的简单 LinearLayout。
  • @Squonk 我希望它从标题中脱颖而出。
  • 您可以简单地使用较小的字体大小,可跨年度等:Is it possible to have multiple styles inside a TextView?

标签: android textview


【解决方案1】:

这听起来像是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

【讨论】:

    【解决方案2】:

    RelativeLayout 中的两个并排 TextView 可能会解决问题,我不明白为什么如果添加正确的 html 格式,Html.fromHtml 将无法工作

    【讨论】:

    • RelativeLayout 不起作用。它会将第二个 TextView 移动到第一个 TextView 的右侧。如果第一个有超过一行的文本,这可能会在第一个和第二个之间留下巨大的差距。至于Html.fromHtml(),我在第二部分使用<small>(2011)</small>,它完全取消了small-tag。
    • 这可能会有所帮助。 stackoverflow.com/questions/1529068/…
    • 是的,我一直在看,但就像我说的那样,我无法让 small-tag 工作。
    • 奇怪,我一直在关注这个指南commonsware.com/blog/Android/2010/05/26/…你认为它可能与设备有关,你在其他设备上尝试过吗?
    • 另一种可能的解决方法stackoverflow.com/questions/7388361/…
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2011-05-31
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多