0

我的Android应用程序有一个不寻常的问题。每当我在网页上关注输入字段时,软键盘就会出现并立即消失。在Android应用程序中消失的软键盘

该应用程序集成了浏览器功能的Crosswalk,但我想说这是以前使用WebView时发生的情况。

这是问题的屏幕记录:

Disappearing soft keyboard

这似乎是推升或调整的HTML,以适应软键盘,但没有出于某种原因。

有谁知道为什么发生这种情况,更重要的是,知道如何解决它?


编辑:我发现,如果我添加机器人:windowSoftInputMode =“adjustPan”我AndroidManifest.xml文件,该问题不会发生。将其设置为“adjustResize”使其始终发生。

还是会喜欢一些帮助,如果任何人知道答案:)

回答

0

的解决方案,这是一种变通方法在Android怪癖(其中有很多)。从我读过的内容来看,这不会发生在iOS上,但我没有测试它来确认。

问题是当软键盘出现时,它会触发窗口大小调整。当您使用自适应网站时,您可能拥有处理大小调整的代码。出现键盘时,会发生窗口大小调整,并且由于自定义大小调整代码,键盘消失。


解决方案1:

的解决方案是重写调整事件是orientationchange事件。虽然这不是一个理想的情况,但如果应用程序是唯一的目标,那么它应该没问题。

为了澄清,变化从(使用jQuery):

$(window).resize (function() 
{ 
    // Code on resize 
}); 

更改为(使用jQuery):

$(window).bind ('orientationchange', function() 
{ 
    // Code on screen rotation 
}); 

我不知道该浏览器支持对orientationchange因为它不是可以在http://caniuse.com上找到,但我可以说它可以与当前版本的Crosswalk(19.49.514.4)配合使用。


解决方案2:

https://stackoverflow.com/a/9229672/3509051通过chrisdew提出另一种解决方案建议“添加监听到禁用反应来调整事件0.5秒输入的焦点事件”。如果您很乐意在输入焦点时有0.5秒的延迟,那么这也应该起作用。