windowSoftInputMode在Android M中无效

时间:2015-06-11 11:57:36

标签: android android-activity android-dialogfragment android-6.0-marshmallow

我在android:windowSoftInputMode="adjustNothing"中设置了AndroidManifest的MainActivity。主题有父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个Activity Theme元素会导致键盘无法调整大小。如果有人对此事有任何永久的解决方案,我会全部听到(或者更确切地说是眼睛)。

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

1 个答案:

答案 0 :(得分:2)

我发现活动主题中的以下两行导致键盘无法调整大小。

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

目前,这是一个快速解决方案。如果任何人有永久解决方案可能保留这两行但也解决问题,请发布另一个答案。