[英]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.