如何在TextView中强制断字?(单词分割时使用字符“-”)

7
我正在使用一个TextView扩展类,它会像打字机一样逐个字符地写入字符串。它工作得很好,但当它写一个不符合当前行的单词时,它会产生令人讨厌的行为,并将不适合的单词从当前行删除并写入下一行。
欢迎大家。我需要知道如何告诉TextView使用连字号,它必须强制断开单词,就像这样:
superlargewo-
rd

verylarg-
eword

这意味着在单词之间插入连字符,而不是将整个单词移到下一行。

如何将其强制用于TextView中?


3
就我所知,https://developer.android.com/reference/android/widget/TextView.html#attr_android:hyphenationFrequency是`TextView`本身提供的全部内容。 - CommonsWare
1
尝试使用introTextView.setHyphenationFrequency(Layout.HYPHENATION_FREQUENCY_FULL)但完全没有效果。行为相同。 - NullPointerException
1个回答

0

对于任何想要通过xml快速让连字号起作用的人,这对我在SDK 25+下有效:

在xml布局中添加hyphenationFrequency和连字符\u00AD,就像这样加入到你的字符串中。

之前:

android:text="Sylabe: "

之后

 android:text="Sy\u00ADla\u00ADbe: "
 android:hyphenationFrequency="normal"

确保没有设置限制文本行数

 android:singleLine="false"

它根据空格会产生以下文本:
Sylabe

或者

Sy-
labe 

或者

Syla-
be

注释:
\u200B 会在不带连字符的情况下断开文本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接