我正在使用Trigger.io构建一个包含html5的iOS / Android应用程序。
我在Android上遇到问题,在虚拟键盘关闭后或手机改变方向后,屏幕上会出现灰色背景。
示例屏幕截图如下所示。
灰色背景是在我的应用页面结束之后。有时它会在一瞬间可见,有时它会保持可见状态,直到您进行操作,例如滚动页面,将键盘拉回,更改方向。
看起来很震撼。
我希望能够阻止问题发生,但作为临时修复,我很高兴能够将灰色设置为我自己的背景颜色,以使其不那么明显。
答案 0 :(得分:1)
当键盘消失时,看起来HTML没有被重新绘制...如果你做某事来触发渲染,它会清除吗?
您是否使用框架来处理UI?可能试图根据可见视口做一些聪明的事情?
据我所知,问题的根源在于webview没有正确地重新绘制,或者JavaScript中的某些内容无法响应视口更改大小。
您可以尝试在“网络”目标(而不是Android)上运行该应用,然后在手机的浏览器中打开它:如果您可以在应用中获得足够的效果以创建相同的效果,则有助于将问题与webview渲染或你的JS。
答案 1 :(得分:0)
我的项目中有一个非常类似的问题,在我的情况下在Android 2.3.5上,但在Android 4上没有。*。我的原因是没有为清单中的相关活动设置窗口软输入模式:
android:windowSoftInputMode="adjustPan"
相反,当键盘出现时窗口正在调整大小,但当键盘消失时,显然没有再次调整大小。
可以找到更多详细信息here。
答案 2 :(得分:0)
我对同样的问题几乎疯了。我终于发现这在很大程度上取决于您使用的设备。我遇到了类似的问题:Fixed elements (HTML) break after android keyboard dissapears?
我也在使用trigger.io。某些设备不会发生这种情况。可能是android中的特定操作系统,也可能只是特定设备处理内存延迟的方式。
我已经找到了这个,但我跟@jamesbrady一起,因为HTML没有重绘。触发器中的问题是您无法编辑
android:windowSoftInputMode="adjustPan"
因为AndroidManifest.xml中的activity标记在每次运行时都会更新。您需要为此构建一个私有模块。