Android 在使用分隔两句时,如何避免文本视图中出现额外的空白行?

Android 在使用分隔两句时,如何避免文本视图中出现额外的空白行?,android,textview,Android,Textview,我们已经开发了一个手写应用程序,它将以3行和4行大小写显示我们所说的单词 我们使用“行尾”分隔大写和小写\n,但在某些情况下,当大写单词正好位于最右侧边缘时,\n字符没有空间占据,因此它将自动占据下一行,并在大写字符和小写字符之间产生额外的行 任何帮助都将不胜感激。请尝试检查文本是否填充整行,例如符号是否等于特定数字,如果是=>则无新行\n,else=>newline before lowercase最后,我自己找到了一个解决方案。可以找到文本视图的结束点和开始点,并且可以用于提取每行中的文本。

我们已经开发了一个手写应用程序,它将以3行和4行大小写显示我们所说的单词

我们使用“行尾”分隔大写和小写\n,但在某些情况下,当大写单词正好位于最右侧边缘时,\n字符没有空间占据,因此它将自动占据下一行,并在大写字符和小写字符之间产生额外的行


任何帮助都将不胜感激。

请尝试检查文本是否填充整行,例如符号是否等于特定数字,如果是=>则无新行\n,else=>newline before lowercase

最后,我自己找到了一个解决方案。可以找到文本视图的结束点和开始点,并且可以用于提取每行中的文本。 这就是我所做的。可能会帮助别人

    ArrayList<String> lines = new ArrayList<String>();
    ArrayList<String> newLines = new ArrayList<String>();
    String line = "";
    String text = getText().toString();
    Layout layout = getLayout();
    int start = 0;
    int end;

    for (int i = 0; i < count ; i++) {
        end = layout.getLineEnd(i);

        lines.add(text.substring(start, end));
        line = lines.get(i);
        start = end;
        String nwText = "";
        // if(line.startsWith(line.toUpperCase())){
        //
        // nwText = " "+ line+" ";
        // }
        // else{

        nwText = " " + line + " ";
        // }
        if(!nwText.equals(" \n "))
            newLines.add(nwText);
    }
    Paint mPaint = getPaint();
    int i = 0;
    // String[] textLines = Results.split("\\n+");
    // float textsize = getTextSize();

    for (String textLine : newLines) {
        // mPaint.setTextSize(textsize);
        int baseline = getLineBounds(i, r);
        canvas.drawText(textLine, 0, baseline, mPaint);
        i++;
    }

您可以在下一个文本之前添加/n,以代替结尾处的。现在,该文本类似于大写+\n+小写,因此它已经位于小写前面。