如何控制TextView何时将String发送到新行?

TextView中的String的单词太大而无法与前一个单词放在同一行时,它会跳到下一行。 这被certificate是非常有用的。 然而,这让我处于两难境地。 由于我的特殊原因,我的String需要在单词的每个字母和单词之间的两个空格之间留有空格。 因此, TextView将在一行中分割出一个单词而在下一行中分割另一个单词。 所以,我想我可能需要创建一个扩展TextView的自定义View ,并覆盖它跳到下一行的方式。 但是看一下textview的类文档,我找不到一种方法可以做到这一点。 因此,任何帮助,建议或建议将不胜感激! 谢谢!

您可以通过一些修改来覆盖TextView

基本策略是覆盖onDraw()方法并自定义绘制文本。 您还必须覆盖onMeasure()

onDraw()您将预处理字符串中的自定义单词 ,并根据需要插入换行符( \n )。

遍历文本中的单词 ,并将measureText(String)与TextView的当前宽度进行比较,以确定插入换行符的位置。 不要忘记考虑“填充”。

示例

 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub super.onMeasure(getSuggestedMinimumWidth(), getSuggestedMinimumHeight()); } @Override protected void onDraw(Canvas canvas) { // preprocess your text canvas.drawText(...); }