EditText を含むダイアログがあり、ユーザーがそれをクリックすると、ソフト キーボードが表示され、ダイアログが押し上げられます。キーボードが閉じられると、EditText は元の位置に戻ります。これは標準的な動作です。EditText は明らかに移動しましたが、 を呼び出すとgetLocationOnScreen()
、ROM 4.0.x 以下の両方の位置で同じ結果が返されます。たとえば、ダイアログはデバイス 720*1280 で 100,1100 に設定され、キーボードが表示されている場合、4.0.x では両方 (100,1100) を取得しますが、4.1 デバイスでは (100,1100),(100,679) を取得します。
ソフトキーボードがダイアログの editText の foucs で表示されている間に変更されたパラメータは誰でも知っています。私はこれをやった。
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);