Android EditText's cursor coordinates (absolute position)

心已入冬 提交于 2019-12-22 10:48:33

问题


How can I get the coordinates of the cursor in the EditText ? I am not trying to get the cursor position here but the EditText coordinates of the cursor.

In my case, when I send a number via KeyEvent to the EditText, the cursor position (getSelectionStart) is changed, but its location is always at the right of the EditText.

I want to know the coordinates of the cursor (the right of the EditText).


回答1:


It's a little bit late answer :), but from API level 21 (Lollipop) there is a way to do it:

  • Override onUpdateCursorAnchorInfo(CursorAnchorInfo cursorAnchorInfo) in your InputMethodService

  • and call inputConnection.requestCursorUpdates(int cursorUpdateMode) with CURSOR_UPDATE_MONITOR flag after you got the inputConnection.

The onUpdateCursorAnchorInfo will be called every time the cursor's position has changed. You can access the cursor's top right coordinates by cursorAnchorInfo.getInsertionMarkerHorizontal() (x) and cursorAnchorInfo.getInsertionMarkerTop() (y).



来源:https://stackoverflow.com/questions/4930416/android-edittexts-cursor-coordinates-absolute-position

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!