【问题标题】:How to adjust the dialog size when keyboard is open?打开键盘时如何调整对话框大小?
【发布时间】:2017-11-27 16:48:26
【问题描述】:

我正在尝试做的事情: 键盘应显示在对话框的底部。

代码: 我正在扩展 Dialog 类。

  window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
        window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE)
        window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

我尝试过的:

  1. window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)

  2. window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)

As I have studied here, SOFT_INPUT_ADJUST_RESIZE 应该可以工作,但我无法弄清楚为什么它在我的情况下不起作用?

【问题讨论】:

  • 贴出完整的对话框类代码..以便更好地理解

标签: android dialog resize


【解决方案1】:

将以下属性添加到您的活动标签 (AndroidManifest.xml)

android:windowSoftInputMode="adjustResize"

您还需要在 OnCreate 函数 (MainActivity.java) 中添加以下代码

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

这解决了问题,并且在所有分辨率模拟器和三星设备上都运行良好。不过,它在 Google Nexus S 设备上确实失败了,我可以再次看到隐藏 EditTexts 的虚拟键盘的相同问题。

您可以尝试下面的代码来根据键盘状态调整对话框。

alertDialog.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

注意 -:如果您使用 Dialog 而不是 alert Dialog,请进行以下更改。

创建一个样式文件,例如对话框.xml。把下面的代码放进去。

<style name="DialogStyle" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
    <item name="android:windowFullscreen">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowSoftInputMode">stateUnchanged</item>
    <item name="android:windowBackground">#22AAEA</item>
</style>

现在将样式应用到对话框。

final Dialog dialog = new Dialog(this , R.style.dialog);

注意,属性“parent”是“Theme.Black.NoTitleBar.Fullscreen”,就像活动的样式一样。并且属性“android:windowFullScreen”应该是假的。

现在,当软键盘切换时,对话框将调整大小。

【讨论】:

  • 嘿,我尝试在父活动中设置 android:windowSoftInputMode="adjustResize" 但结果是一样的。
  • 你试过下面应该在 OnCreate 中的代码吗?
  • 还是不行。我正在使用 Dialog 而不是 alertDialog 这会是一个问题??
  • 我已经更新了对话框的代码。请尝试一次。
  • 感谢@androidOnHigh
猜你喜欢
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2016-10-11
  • 2019-01-17
相关资源
最近更新 更多