2

android:windowSoftInputMode="adjustNothing"に設定された MainActivity がありAndroidManifestます。テーマには親がありTheme.AppCompat.Light.NoActionBarます。このアクティビティに DialogFragment を追加し、その中に AlertDialog を表示してから alertDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);、フラグメント内に設定します。

現在、Android 5.1.1 では期待どおりに動作します。ダイアログの作成時にキーボードが自動的に表示されません。ユーザーがダイアログ内の EditText をタップすると、キーボードがポップアップし、オーバーラップしないようにアクティビティのサイズを変更します。

問題は、Android M ではこれが起こらないことです。ダイアログの作成時にはキーボードは実際には表示されませんが、ユーザーが EditText に触れた後にキーボードがポップアップすると、ダイアログに重なって表示されます。

なぜこれが M で発生するのか、以前のバージョンではすべて正常に動作するのか、何か考えはありますか?

編集:どうやら問題の基本のみで HelloWorld プロジェクトを作成した後、以下の 2 つのアクティビティ テーマ要素が原因でキーボードのサイズが変更されないことがわかりました。誰かがこの問題に対する恒久的な解決策を持っているとしたら、私はすべて耳 (またはむしろ目) です。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>
4

1 に答える 1

2

アクティビティ テーマの次の 2 行により、キーボードのサイズが変更されないことがわかりました。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

今のところ、これは簡単な修正です。これらの2行を保持するだけでなく、問題を解決するための永続的な解決策を誰かが持っている場合は、別の回答を投稿してください。

于 2015-06-13T09:53:25.827 に答える