Android软键盘不平移网页视图

Posted

技术标签:

【中文标题】Android软键盘不平移网页视图【英文标题】:Android soft keyboard not panning web view 【发布时间】: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 并且看起来不太好。你有什么解决办法吗。在最后一段你提到“一件事……改变”;您能否解释一下这些选项,以便其他人(包括我)可以使用它 ***.com/questions/18765610/… @dizzymonkey 你找到解决方案了吗? 【参考方案1】:

如果我们使用没有操作栏的全屏,adjustResize 将不起作用。详情见本帖

adjustPan not preventing keyboard from covering EditText

【讨论】:

以上是关于Android软键盘不平移网页视图的主要内容,如果未能解决你的问题,请参考以下文章

如何将视图锚定到 android 软键盘

为啥Android不会暂停视图完全被软键盘挡住的片段?

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

移动端H5软键盘的问题

软输入键盘将我的静态底部视图向上移动 Android Kotlin

将网页输入字段滚动到顶部防止被软键盘隐藏