软件
我正在使用 Sencha Touch (2.1.1) 和 PhoneGap (2.5.0) 开发适用于 Android 和 iOS 的应用程序。
我的问题
在容器底部有一些带有输入字段(Ext.field.Text和Ext.field.Email )的视图。当您点击输入字段时,Android SoftKeyboard 会显示并将整个视图推到顶部,这样输入字段就不会被键盘隐藏。
现在,当您隐藏键盘(通过按下 Android 隐藏按钮或通过点击输入字段之外的任何位置)时,WebView 不会总是弹回,直到您再次点击 WebView。
硬件
目前我在 Nexus 4 (Android 4.2.2) 上遇到了这个问题。在 iOS (iPhone 4/5) 甚至在 Sony XPERIA Go (Android 4.0.4) 上一切正常。
截图
以下是问题的一些截图:
我已经发现我可以将 Android 更改windowSoftInputMode
为 adjustNothing
,但是在隐藏键盘之前你不会看到输入的文本......
更新
Sergio 对 3 种缓解措施的一些评论。
第一个解决方案对我来说似乎是最好的。它只影响 Android 项目,不会使我的 JS(例如if Ext.os.is.Android ...
)或 iOS 代码膨胀。windowSoftInputMode
不幸的是,如果我按照描述进行设置,我的 Nexus 4 仍会调整焦点并且不会恢复模糊...
第二种解决方案听起来更复杂。如果操作系统是 Android,我需要将每个(底部对齐的)组件移到焦点上并恢复模糊。虽然这绝对是可能的,但可能还有另一个问题:用户可以使用设备的后退键隐藏键盘,而无需移除输入的焦点(不触发模糊)。所以我认为这不是一个合适的解决方案。
第三种解决方案适用于数字输入。但是为文本输入编写一个虚拟键盘是一项艰巨的任务:不同语言环境的键对齐方式不同(例如,德语键盘上的y和z被调换)并且我们在提供替代键盘时无法满足用户的期望(滑动输入、建议、 ...)。
不要误会我的意思,我很感谢您与我分享您的缓解措施!但我还不完全满意。