Документация для InputConnection.commitText(CharSequence text, int newCursorPosition)
< /a> говорит, что newCursorPosition
означает:
int: новая позиция курсора вокруг текста в символах Java. Если > 0, это относительно конца текста - 1; если ‹= 0, это относительно начала текста. Таким образом, значение 1 всегда будет перемещать курсор на позицию после вставки полного текста. Обратите внимание, что это означает, что вы не можете поместить курсор в текст, потому что редактор может вносить изменения в текст, который вы предоставляете, поэтому невозможно правильно указать его местоположение.
В этом примере, если я ввожу два символа, то помещаю курсор между ними следующим образом
а затем введите другой символ, не имеет значения, устанавливаю ли я newCursorPosition
на 0
или 1
. Курсор всегда находится в конце вставки. Например, вызов
inputConnection.commitText("aaa", 0);
or
inputConnection.commitText("aaa", 1);
Оба показывают курсор следующим образом:
Если я сделаю -1
с
inputConnection.commitText("aaa", -1);
я понимаю это
Результаты 1
и -1
ожидаются в соответствии с документацией. Почему 0
не помещает курсор в начало вставки? Я ожидаю, что 0
должно быть таким
inputConnection.commitText("aaa", 0);
но это не так. Почему бы и нет?