представление застряло на `commitText` метод InputConnection - PullRequest
1 голос
/ 19 июня 2019

Я отправляю текст, когда пользователь нажимает клавишу, используя код клавиши в InputConnection

но этот метод повесит представление и выпустит его через несколько миллисекунд

if (getCurrentInputConnection() != null) {
    getCurrentInputConnection().commitText(String.valueOf((char) charCode), 1);
}

Я что-то делаю не так или другое решение?

Ответы [ 2 ]

0 голосов
/ 19 июля 2019

Не используйте commitText() при каждом нажатии клавиши.

Используйте

getCurrentInputConnection().setComposingText(mComposingText, 1);

для всех нажатий клавиш и фиксации текста для составления при space нажатии.

Для фиксации текста при составлении используйте

getCurrentInputConnection().finishComposingText();

Itбыла решена моя проблема

0 голосов
/ 19 июня 2019

Почему бы просто не создать экземпляр из getCurrentInputConnection()?

String txt = String.valueOf((char) charCode);
InputConnection ic = getCurrentInputConnection();
if (ic != null) {
    ic.commitText(txt , 1);
}
...