PhoneGap/Sencha Touch:隐藏SoftKeyboard上的WebView渲染问题

ott*_*142 6 android sencha-touch-2 cordova

软件

我正在使用Sencha Touch(2.1.1)和PhoneGap(2.5.0)开发适用于Android和iOS的应用程序.

我的问题

在容器的底部有一些输入字段(Ext.field.TextExt.field.Email)的视图.当您点击输入字段时,Android SoftKeyboard会显示并将整个视图推到顶部,以便键盘不会隐藏输入字段.

现在,当您隐藏键盘时(通过按下Android隐藏按钮或点击输入字段旁边的任何位置),在您再次点击WebView之前,WebView并不总是快速恢复.

硬件

目前我在Nexus 4(Android 4.2.2)上遇到了这个问题.这一切都适用于iOS(iPhone 4/5)甚至索尼XPERIA Go(Android 4.0.4).

截图

以下是该问题的一些屏幕截图:

风景 键盘推动视图顶部 键盘已关闭

我已经发现我可以将Android更改windowSoftInputModeadjustNothing,但是在隐藏键盘之前你不会看到键入的文本...

更新

塞尔吉奥对3项缓解措施的一些评论.

第一个解决方案对我来说似乎是最好的.它只会影响Android项目,并且不会使我的JS(例如if Ext.os.is.Android ...)或iOS代码膨胀.不幸的是我的Nexus 4还调整焦点和模糊不恢复,如果我设置windowSoftInputMode的描述......

第二种解决方案听起来更复 如果操作系统是Android,我需要在焦点上移动每个(底部对齐)组件并恢复模糊.虽然这绝对是可能的,但可能还有另一个问题:用户可以使用设备的后退键隐藏键盘而不删除输入的焦点(模糊不会触发).所以我不认为这是一个合适的解决方案.

第三种解决方案适用于数字输入.但是为文本输入编写虚拟键盘是一项艰巨的任务:区域设置之间的键对齐方式不同(例如yz在德语键盘上转换),在提供替代键盘时我们无法满足用户的期望(滑动输入,建议, ...).

不要误会我的意思,我很感谢你和我分享你的缓刑!但我还没有完全满意.

ott*_*142 2

Sencha Touch 2.2.0 解决了这个问题!

我终于找到了合适的解决方案。4 月 15 日,Sencha 发布了Touch 框架2.2.0版本。从 2.1.0 升级后,布局恢复正常!

为了节省其他人的时间:请注意,Sencha Cmd 3.1.x(2.2.0 需要)不适用于 Ruby 2.0.0。构建过程将失败并出现一些奇怪的错误消息。使用 1.9.3 可以正常工作。

更新 #2:Sencha Touch 2.2.1...

嗯..我刚刚升级到 Sencha Touch 2.2.1,问题又回来了!因此,如果您计划使用最新的 Sencha Touch 版本,请注意键盘可能会破坏您的布局:/