Ank*_*009 0 android resize dialog
我想要做什么:键盘应该显示在对话框的底部。
代码:我正在扩展 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)
Run Code Online (Sandbox Code Playgroud)
我尝试过的:
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN)
正如我在这里学习的那样, SOFT_INPUT_ADJUST_RESIZE 应该可以工作,但我无法弄清楚为什么它在我的情况下不起作用?
将以下属性添加到您的活动标签 (AndroidManifest.xml)
android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)
您还需要在 OnCreate 函数(MainActivity.java)中添加以下代码
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Run Code Online (Sandbox Code Playgroud)
这解决了问题,并且在所有分辨率模拟器和三星设备上都运行良好。不过,它确实在 Google Nexus S 设备上失败了,我可以再次看到隐藏 EditText 的虚拟键盘的相同问题。
您可以尝试使用以下代码根据键盘状态调整对话框。
alertDialog.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Run Code Online (Sandbox Code Playgroud)
注意-:如果您使用 Dialog 而不是 alert Dialog,请执行以下更改。
创建一个样式文件,例如 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>
Run Code Online (Sandbox Code Playgroud)
现在将样式应用于对话框。
final Dialog dialog = new Dialog(this , R.style.dialog);
Run Code Online (Sandbox Code Playgroud)
请注意,属性“parent”是“Theme.Black.NoTitleBar.Fullscreen”,就像活动的样式一样。并且属性“android:windowFullScreen”应该是假的。
现在,当软键盘切换时,对话框将调整大小。
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |