我正在使用 Trigger.io 构建一个 html5 包装的 iOS / Android 应用程序。
我在 Android 上遇到问题,在虚拟键盘关闭或手机更改方向后,有时屏幕上会出现灰色背景。
示例屏幕截图如下所示。
灰色背景是在我的应用页面结束之后。有时它会在一瞬间可见,有时它会一直保持可见,直到您执行滚动页面、拉回键盘、更改方向等操作。
看起来很刺耳。
理想情况下,我希望阻止问题的发生,但作为临时解决方案,我很高兴能够将灰色设置为我自己的背景颜色以使其不那么引人注目。
我正在使用 Trigger.io 构建一个 html5 包装的 iOS / Android 应用程序。
我在 Android 上遇到问题,在虚拟键盘关闭或手机更改方向后,有时屏幕上会出现灰色背景。
示例屏幕截图如下所示。
灰色背景是在我的应用页面结束之后。有时它会在一瞬间可见,有时它会一直保持可见,直到您执行滚动页面、拉回键盘、更改方向等操作。
看起来很刺耳。
理想情况下,我希望阻止问题的发生,但作为临时解决方案,我很高兴能够将灰色设置为我自己的背景颜色以使其不那么引人注目。
当键盘消失时,这看起来像 HTML 没有被重新绘制......如果你做一些事情来触发渲染,它会清除吗?
你在这里使用框架来处理 UI 吗?可能试图根据可见视口做一些聪明的事情?
据我所知,问题的根源在于 webview 没有正确重新绘制,或者您的 JavaScript 中的某些内容无法响应视口大小的变化。
您可以尝试在“web”目标(而不是 Android)上运行应用程序,然后在手机的浏览器中打开它:如果您可以深入应用程序以创建相同的效果,这将有助于将问题隔离到 webview 渲染或你的 JS。
我的项目中有一个非常相似的问题,在我的情况下是在 Android 2.3.5 上,但不是在 Android 4.* 上。在我的情况下,原因是没有为清单中的关联活动设置窗口软输入模式:
android:windowSoftInputMode="adjustPan"
相反,当键盘出现时窗口正在调整大小,但当键盘消失时显然没有再次调整大小。
更多细节可以在这里找到。
我几乎对同样的问题发疯了。我终于发现这在很大程度上取决于您使用的设备。我有一个类似的问题:android 键盘消失后固定元素(HTML)中断?
而且我也在使用trigger.io。某些设备不会发生这种情况。可能是 android 中的特定操作系统,也可能只是特定设备处理内存延迟的方式。
我一直在寻找这个,但我选择了@jamesbrady,因为 HTML 不会重绘。触发器中的问题是您无法编辑
android:windowSoftInputMode="adjustPan"
因为 AndroidManifest.xml 中的活动标签在每次运行时都会更新。您需要为此构建一个私有模块。