9

我要解决的原始问题更复杂,但出于调查目的,我将测试用例简化为以下内容:

  • 单个全屏活动
  • 以编程方式创建的 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 视图设为全屏或单独的活动。

4

1 回答 1

0

如果我们使用没有操作栏的全屏,adjustResize 将不起作用。查看这个线程的详细信息

  • adjustPan 不阻止键盘覆盖 EditText
  • 于 2013-11-05T09:24:45.057 回答