簡體   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