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)でカーソルの右上座標にアクセスできます。