Android - 键盘弹出时调整屏幕?

Posted

技术标签:

【中文标题】Android - 键盘弹出时调整屏幕?【英文标题】:Android - Adjust screen when keyboard pops up? 【发布时间】:2011-02-03 07:05:00 【问题描述】:

当软键盘弹出时,我希望能够在 android 上调整我的 UI 屏幕。

所以现在我有一些类似于下面的第一张图片和屏幕底部的 EditText 的东西,当用户点击 EditText 时,我想要与第二张图片中发生的相同。

也就是说,EditText 被向上移动并看起来“坐在”软键盘的顶部,当软键盘消失时,它应该返回到之前的状态。

谁能告诉我处理和实施此问题的最佳方法?

alt text http://img40.imageshack.us/img40/2300/keyboarddown.png


alt text http://img46.imageshack.us/img46/9339/keyboardup.png

【问题讨论】:

【参考方案1】:

看看android:windowSoftInputMode

【讨论】:

【参考方案2】:

您需要将android:windowSoftInputMode="adjustResize" 添加到您在AndroidManifest.xml 文件中的标签中。

【讨论】:

在哪个标签中???我认为<activity> 标签,但它没有做任何事情。请回复。 是的,它属于活动标签(见the docs,正如@Samuh 在他的回答中提到的那样。不知道为什么它不适合你,抱歉。 我们已经在manifest文件中写了这一行,键盘在竖屏模式下可以正常工作。但在横向模式下,键盘会隐藏输入字段。【参考方案3】:

我根据 rascalking 的回复解决了这个问题。

Dialog dialog = new Dialog(context);
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
dialog.setContentView(R.layout.pop_window_service);
WebView webview = (WebView) dialog.findViewById(R.id.pop_webview);
webview.loadUrl(url);

相信我它有效。

【讨论】:

以上是关于Android - 键盘弹出时调整屏幕?的主要内容,如果未能解决你的问题,请参考以下文章

iPad键盘分裂时调整UIPopover

Android - 当键盘为 android 5.0 (棒棒糖) 启动时调整滚动视图

如何防止 Android Firefox 浏览器在打开软键盘时调整窗口大小

避免 android 软键盘调整布局大小。或回调隐藏视图

NativeScript - ios如何在键盘出现时调整视图

Android:当 Appcompat 底部工作表显示时调整 EditText 的大小