如何在Android Textview中控制换行

18

我有一个Appwidget,用于显示距离事件的天数,例如:

事件名称(-231天)

如果可能,我希望在同一行上显示此字符串。 如果事件名称太长,我想将完整术语显示在括号内的新行中。 就像这样:

长事件名称
(-231天)

而不是:

长事件名称(-231
天)

(或类似的格式)

有没有方法可以实现这个效果? 我能使“(-231天)”成为“原子”吗?

由于小部件的大小因设备而异,string.getLength无法使用。

1个回答

35

在数字和“天”之间可以使用不间断空格

在XML中使用 表示,在Java代码中使用\u00A0表示字符串。


太棒了!这正是我在寻找的。"\u00A0" 在 Textview 中完美地工作。 - Tobias
10
对于做类似事情的人,这里有两个有用的提示:首先,还有一个不换行的减号 (\u2011),其次,你可以使用零宽度空格 http://en.wikipedia.org/wiki/Zero-width_space 来在单词内进行可能的换行。 - Tobias
1
只是一个提示:看起来这在大多数情况下都有效。但是,即使是不间断空格,如果前面有句点,它也会被打破(可悲的是没有不间断句点)。因此,如果您正在处理像“P. Howard”这样的缩写,则此选项不可行。 - IBoS
1
对于关心排版的人,也许你会喜欢使用不间断连字符而不是减号。 - arekolek

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