【问题标题】:TextView no wrapping special character AndroidTextView没有包装特殊字符Android
【发布时间】:2018-07-02 06:53:21
【问题描述】:

有没有办法为 Android TextView 创建/覆盖自定义自动换行引擎?

例如,

我的名字是 Edwin (US:1113)

应该显示为

我叫埃德温

(美国:1113)

代替

我的名字是 Edwin(美国:

1113)

已尝试更改以下设置的所有可能值,但效果不佳。

Android:maxLines
Android:setHorizontallyScrolling
Android:ellipsize
Android:singleLine

在我的发现中,TextView 中的自动换行不包含特殊字符,例如 :

2018 年 2 月 7 日凌晨 3 点更新

正如@Umair 所提到的,用“\n”换行是不可能的,因为我不知道冒号 : 之前的文本长度。这会使句子在达到 TextView 的最大宽度之前过早换行。

【问题讨论】:

  • 你试过用\n吗?
  • @Umair 否,因为它应该根据可用宽度动态完成。
  • 然后使用 textview 作为 match_parent ,然后您可以获得 textview 的宽度并相应地放置您的文本。除此之外,每台设备都有自己的配置,因此很难获得所需的结果。
  • @Umair 是的,这就是我所做的。但我面临的问题是文本 (US:1113) 中的冒号“:”。 Android TextView 会将文本拆分为 (US:1113),它们应该被视为一个单词。
  • 可以做一件事,如果您确定每次显示值时都会出现 : ,然后检查宽度是否结束并且 : 是否有断行或拆分字符串,?

标签: android textview word-wrap


【解决方案1】:

LinearLayout 内使用 2 个 TextViews,方向为 horizontal,并将 My name is Edwin 放在第一个,(US:1113) 放在第二个。如果第二个 TextView 没有空间,那么它将落到下一行。

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 2015-09-07
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多