カスタムインプットメソッドサービスを実装しており、カーソル更新イベントを受け取ることに関心があります。InputMethodSession の updateCursor() のドキュメントには次のように書かれています。
インプットメソッドはどのようにこのイベントをリクエストできますか?
前もって感謝します、
アンドリー
カスタムインプットメソッドサービスを実装しており、カーソル更新イベントを受け取ることに関心があります。InputMethodSession の updateCursor() のドキュメントには次のように書かれています。
インプットメソッドはどのようにこのイベントをリクエストできますか?
前もって感謝します、
アンドリー
これは未実装のようです。TextView
実装では、呼び出しは次のように便利に定義されている をupdateCursor
条件としています。InputMethodManager.isWatchingCursor
/**
* Returns true if the current input method wants to watch the location
* of the input editor's cursor in its window.
*/
public boolean isWatchingCursor(View view) {
return false;
}
幸いなことに、カーソルの動きは を使用して検出できますがonUpdateSelection
、それらは Rect ではなくテキスト内の論理的な位置として与えられます。
API レベル 21 (Lollipop) から、それを行う方法があります。
オーバーライドonUpdateCursorAnchorInfo(CursorAnchorInfo cursorAnchorInfo)
そして電話するinputConnection.requestCursorUpdates(int cursorUpdateMode)
inputConnection を取得した後。
カーソルのonUpdateCursorAnchorInfo
位置が変わるたびに呼び出されます。