EditText でカーソルの座標を取得するにはどうすればよいですか? ここでカーソル位置を取得しようとしているのではなく、カーソルの EditText 座標を取得しようとしています。
私の場合、KeyEvent を介して EditText に数値を送信すると、カーソル位置 (getSelectionStart) が変更されますが、その位置は常に EditText の右側にあります。
カーソル(EditTextの右)の座標が知りたいです。
EditText でカーソルの座標を取得するにはどうすればよいですか? ここでカーソル位置を取得しようとしているのではなく、カーソルの EditText 座標を取得しようとしています。
私の場合、KeyEvent を介して EditText に数値を送信すると、カーソル位置 (getSelectionStart) が変更されますが、その位置は常に EditText の右側にあります。
カーソル(EditTextの右)の座標が知りたいです。
少し遅い答えです:)、しかしAPIレベル21(Lollipop)からそれを行う方法があります:
onUpdateCursorAnchorInfo(CursorAnchorInfo cursorAnchorInfo)
InputMethodService でオーバーライドする
inputConnection.requestCursorUpdates(int cursorUpdateMode)
inputConnection を取得した後、CURSOR_UPDATE_MONITOR フラグを指定して呼び出します。
カーソルのonUpdateCursorAnchorInfo
位置が変わるたびに呼び出されます。cursorAnchorInfo.getInsertionMarkerHorizontal()
(x) とcursorAnchorInfo.getInsertionMarkerTop()
(y)でカーソルの右上座標にアクセスできます。