【发布时间】:2013-08-10 15:40:31
【问题描述】:
我要解决的原始问题更复杂,但出于调查目的,我将测试用例简化为以下内容:
- 单个全屏活动
- 以编程方式创建的 Web 视图大约占据水平屏幕空间的一半、垂直空间的 90%,并通过 onCreate 调用添加到根视图:
ViewGroup parent = (ViewGroup) getWindow().getDecorView().getRootView();
parent.addView(myWebView);
- 网页视图通过以下方式打开到 google.com:
loadUrl("http://google.com")
- AndroidManifest.xml 具有以下属性:
"android:windowSoftInputMode="adjustPan"
当点击 google 页面上的搜索框时,键盘会弹出,但 web 视图本身并没有像 adjustPan 指示的那样向上移动。主 Activity 也有一个原生文本字段,单击该文本字段时会按预期向上移动整个布局(包括 Web 视图)。
Nexus 7 和 Galaxy Nexus 上的 4.2.2 都存在这种行为。
所以问题是我如何才能将 windowSoftInputMode 属性 adjustPan 正确应用于 Web 视图实例,以便在显示软键盘时整个 Web 视图被键盘占用的垂直空间向上移动。
在我尝试在 onMeasure 中手动操作布局之前,我想看看是否有一致/更好的方法来处理这个问题。浏览器显然正确地处理了这种情况,所以不确定为什么 web 视图不能处理这种情况。
需要注意的一点是,由于我无法更改现有架构,因此无法将 Web 视图设为全屏或单独的 Activity。
【问题讨论】:
-
我也有同样的问题。我不能使用“adjustResize”,因为它会缩小 webview 并且看起来不太好。你有什么解决办法吗。在最后一段你提到“一件事……改变”;您能否解释一下这些选项,以便其他人(包括我)可以使用它
-
@dizzymonkey 你找到解决方案了吗?
标签: android webview keyboard textfield ime