繁体   English   中英

在Android应用程序中消失的软键盘

[英]Disappearing soft keyboard in Android app

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

该应用程序集成了Crosswalk的浏览器功能,但我想说这曾经发生在我之前使用过WebView时。

这是问题的屏幕录制:

消失的软键盘

它似乎是推高或调整HTML的大小以适应软键盘,但由于某种原因失败。

有谁知道为什么会这样,更重要的是,知道如何解决它?


编辑:我发现,如果我将android:windowSoftInputMode =“adjustPan”添加到我的AndroidManifest.xml文件中,则问题不会发生。 将其设置为“adjustResize”会使它始终发生。

如果有人知道答案,仍然会喜欢一些帮助:)

对此的解决方案是Android怪癖的解决方法(其中有很多)。 从我所读到的,这不会发生在iOS上,但我没有测试它来确认。

问题是当软键盘出现时,它会触发窗口调整大小。 当您使用响应式网站时,就像我一样,您可能拥有处理调整大小的代码。 当键盘出现时,会发生窗口调整大小,键盘因自定义调整大小代码而消失。


解决方案1:

解决方案是将resize事件重写为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:

chrisdew在https://stackoverflow.com/a/9229672/3509051上建议的替代解决方案建议“在输入的焦点事件中添加一个监听器,该事件禁止对0.5秒的事件大小调整做出反应。” 如果你很乐意在输入被聚焦时有0.5秒的延迟,这也应该有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM