获取光标位置Android键盘

lrA*_*oid 5 keyboard android cursor latin android-softkeyboard

我正在使用Android软键盘并且想知道,键盘是否有办法获取当前光标位置?我目前正在使用以下代码:

connection.getTextBeforeCursor(Integer.MAX_VALUE, 0).length()
Run Code Online (Sandbox Code Playgroud)

然而,这非常慢(即使是少量文本,也可能需要长达50毫秒 - 在Galaxy Nexus上运行,因此对于低端手机来说这可能会更慢).我也在Droid Incredible上测试了它,而且滞后更严重.

在onUpdateSelection函数中,您将获得新的光标位置.但是,并不总是调用此函数,因此存储由其提供的值以供将来使用是不可靠的.

由于您可以设置光标位置并获取所选文本(但不是所选文本的位置),是否应该有一个函数来获取光标位置?

谢谢您的帮助!

Dav*_*ers 7

这是一个较老的问题,但我最近遇到了同样的问题.获取光标位置:

InputConnection ic = getCurrentInputConnection();
ExtractedText et = ic.getExtractedText(new ExtractedTextRequest(), 0);
int selectionStart = et.selectionStart;
int selectionEnd = et.selectionEnd;
Run Code Online (Sandbox Code Playgroud)

  • 是的,在这种情况下,selectionStart和selectionEnd相等。 (2认同)