的文档InputConnection.commitText(CharSequence text, int newCursorPosition)
说这newCursorPosition
意味着:
int:文本周围的新光标位置,以 Java 字符表示。如果 > 0,这是相对于文本结尾的 - 1;如果 <= 0,这是相对于文本的开头。因此,值为 1 将始终将光标前进到插入全文之后的位置。请注意,这意味着您无法将光标定位在文本中,因为编辑器可以对您提供的文本进行修改,因此无法在此处正确指定位置。
在这个例子中,如果我输入两个字符,然后像这样将光标放在它们之间
然后输入另一个字符,我设置newCursorPosition
为0
or都没关系1
。光标始终位于插入的末尾。例如调用
inputConnection.commitText("aaa", 0);
或者
inputConnection.commitText("aaa", 1);
两者都像这样显示光标:
如果我这样-1
做
inputConnection.commitText("aaa", -1);
我明白了
根据文档,预期结果1
和-1
结果。为什么不0
将光标放在插入的开头?我希望0
应该是这样的
inputConnection.commitText("aaa", 0);
但事实并非如此。为什么不?