如何在 EditText 中获取当前行的最后(就在新行开始之前)光标位置?

How can i get last(just before new line starts) cursor position of current line in EditText?

例如:- “一个人的伟大不在于他获得了多少财富,而在于他的正直和他对周围人产生积极影响的能力”

我想获取上面文本中 'and' 之后的光标位置?

获取当前光标行我正在使用以下方法:-

public int getCurrentCursorLine(EditText editText)
    {
       int selectionStart = Selection.getSelectionStart(editText.getText());
       Layout layout = editText.getLayout();

       if (!(selectionStart == -1))
       return layout.getLineForOffset(selectionStart);

       return -1;
    }

但现在我想要行尾光标位置,所以我可以填充当前光标位置和行尾光标位置之间的 space。

谢谢尼舒

如果您只是想要一个方法,您可以随时调用:

private int getLastLineBreak(EditText editText) {
    int currentCursorPos = editText.getSelectionStart();
    Editable s = editText.getText();
    for (int i = currentCursorPos; i > 0; i--) {
        if (s.chartAt(i) == '\n') {
            return = i;   
        }
    }
    return 0;
}

这将 return 最后一个换行符 \n,从当前光标位置开始并循环返回,直到找到一个或到达位置 0