現在、IME(InputMethodEditor)アプリケーションを開発しているので、サブクラス化されたInputMethodServiceが存在し、keyboardViewを拡張します。この場合、ビューを膨らませるだけで、そのサイズはキーボードに似ています。ビューは、タッチイベントの位置を、主に下に移動し、上に移動します。私はイベントの動きに与えられたタッチ位置をテストしているので、これを最小限に抑えました。記録されたすべての位置はIMEウィンドウからの相対位置ですが、移動ジェスチャが(上の)ビューを超えた場合、y座標は継続せずゼロのままです。Android IMEのタッチイベントは常にウィンドウディメンションに限定されます
アクションの移動がIMEウィンドウの外にある場合でも、ポインタの実際の座標を引き続き受け取る方法はありますか。
EDIT:目的は、IMEウィンドウのビューからアクションの移動イベントを別のウィンドウのビューに渡すことができるかどうかをテストすることです(つまり、IMEウィンドウから別のウィンドウにアクションをシームレスに移動することができます)。 IMEウィンドウに戻ります。しかし、移動座標はIMEウィンドウにバインドされているように見えるので、タッチがIMEウィンドウを超えた場合は動作しません。
親ビューの幅と高さに一致するコンテナビュー内にIMEビューを配置してみてくださいこのコンテナの背景が何もないことを確認してくださいビューを膨張させると、IME、あなたはまだキーボードの後ろにあるものを制御することができるので、あなたのY座標はゼロ以外の何かを表示するはずです。^ – MohammedAlSafwan
これは、関連するビューの正しいy値を提供しますが、IMEはもはや機能しません。 IMEは実質的にフルスクリーンで、タッチは下のビューには収まらない。また、アプリはIMEに対して相対座標を設定します。フルスクリーンにする必要がある場合、アプリは表示されません。 – mitim
@ TK52実際には、あなたがonComputeInsets()をオーバーライドし、必要なIMEの可視部分に値を設定すると、あなたの提案はうまくいく可能性があります。 – mitim