在我的 Android 布局中,我有一个使用屏幕可用宽度一半的 TextView。在运行时,我将文本设置为(长)电子邮件地址。例如:
googleandroiddeveloper@gmail.com
如果文本不适合一行,Android 会插入一个换行符,这是所需的行为。但是,换行符的位置在第一个不适合该行的字符之前。结果可能是这样的:
googleandroiddeveloper@gmai
l.com
我认为,这有点丑陋,尤其是在电子邮件地址中。我希望换行符出现在@
字符之前:
googleandroiddeveloper
@gmail.com
当然,我可以\n
在我的strings.xml
. 但是,电子邮件地址在每种情况下都会使用两行,即使它适合一行。
我已经认为我找到了一个解决方案,将零宽度空格 ( \u200B
) 添加到电子邮件地址。
<string name="email">googleandroiddeveloper\u200B@gmail.com</string>
但除了使用标准空格外,Android 不会将特殊空格字符检测为可破坏空格,因此此时不会添加换行符。
当我在我的应用程序的多个位置处理大量电子邮件地址时,我正在寻找一种解决方案来在@
字符之前添加一个易碎且不可见的空间,因此如果电子邮件地址不适合一行,Android 会包装电子邮件地址。