我正在解决的原始问题更复杂,但出于调查目的,我已将测试用例简化为以下内容:
>单一全屏活动
>以编程方式创建的Web视图占据大约一半的水平屏幕空间,90%的垂直空间,并通过onCreate调用添加到根视图中:
ViewGroup parent =(ViewGroup)getWindow().getDecorView().getRootView();
parent.addView(myWebView);
>网页视图通过以下方式打开google.com:
使用loadURL( “http://google.com”)
“机器人:windowSoftInputMode =” adjustPan”
当点击谷歌页面上的搜索框时,键盘弹出,但是网页视图本身没有向上移动,因为adjustPan指示应该发生.主活动还有一个本机文本字段,单击该字段将按预期移动整个布局(包括Web视图).
在Nexus 7和Galaxy Nexus上的行为都出现在4.2.2上.
所以问题是如何将windowSoftInputMode属性adjustPan正确应用于Web视图实例,以便在显示软键盘时整个Web视图向上移动键盘占用的垂直空间.
在我试着在onMeasure中手动操作布局之前,我想看看是否有一致/更好的方法来处理这个问题.浏览器显然正确处理这种情况,因此不确定为什么Web视图无法处理此问题.
需要注意的一点是,由于我无法更改现有架构,因此无法将Web视图设置为全屏或单独的活动.
解决方法
如果我们在没有操作栏的情况下使用全屏,则adjustResize将无效.有关详细信息,请参阅此主题>
adjustPan not preventing keyboard from covering EditText