【发布时间】: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