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