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秒的延遲,那麼這也應該起作用。