如何在EditText中获取光标的坐标?我不是试图在这里获取光标位置,而是光标的EditText坐标。
在我的情况下,当我通过KeyEvent向EditText发送一个数字时,光标位置(getSelectionStart)会改变,但它的位置总是在EditText的右边。
我想知道光标的坐标(EditText的右边)。
答案 0 :(得分:2)
有点迟到的答案:),但是从API级别21(Lollipop)有一种方法可以做到:
覆盖InputMethodService
onUpdateCursorAnchorInfo(CursorAnchorInfo cursorAnchorInfo)
并在获得inputConnection后使用CURSOR_UPDATE_MONITOR标志调用inputConnection.requestCursorUpdates(int cursorUpdateMode)
。
每次光标位置发生变化时,都会调用onUpdateCursorAnchorInfo
。您可以通过cursorAnchorInfo.getInsertionMarkerHorizontal()
(x)和cursorAnchorInfo.getInsertionMarkerTop()
(y)访问光标的右上角坐标。