【发布时间】:2023-03-21 17:01:01
【问题描述】:
我正在开发一个软键盘。我有一个扩展InputMethodService 的类MyIME。
我覆盖onKey(int, int) 来处理按键。我的键盘能够以我在纵向模式下定义的方式插入和删除文本很好,当键盘设置为全屏时,我只是在横向模式下遇到问题。
在全屏模式下,使用框架的默认ExtractEditLayout,其中包含一个ExtractEditText 实例。当我在全屏模式下键入时,会发生以下奇怪的行为:
- 我可以正常输入普通字符。我使用
getCurrentInputConnection().commitText(String.valueOf(code), 1);插入这些 -
当我按退格键删除一个字符时,光标向后移动,前面的字符被删除。这表现得很好。从此时起,后续的击键将不再发挥应有的作用:
如果我在第一个字符后按退格键,光标会向后移动,但字符不会被删除。当按下退格键时,会执行
getCurrentInputConnection().deleteSurroundingText(1, 0);。同样,如果我在按一次退格后添加更多字符,光标会向前移动,但字符不会出现在屏幕上。
当我通过将设备转回纵向退出全屏模式时,我输入或删除的所有字符都在那里。似乎用于撰写全屏消息的ExtractEditLayout 与我的InputMethodService 子类不同步并且似乎它们只是在我最初尝试删除一个字符后才变得不同步。
【问题讨论】:
标签: android android-softkeyboard android-input-method soft-keyboard