2015-09-06 79 views
6

我有一個WebView(在ViewPager中的SlidingTabLayout內的片段內)。AdjustResize通過點擊外部鍵盤解散鍵盤後不起作用

使用WebView鍵入時,我希望佈局調整大小以確保輸入可見。

當我單擊WebView中的文本輸入時,軟鍵盤出現並且佈局調整大小。我可以輸入我的文字並使用軟鍵盤的返回按鈕提交或使用後退按鈕取消輸入。之後,鍵盤消失,佈局調整回來。正確AdjustResize行爲。

但是,當通過在Softkeyboard外部單擊來解除鍵盤(例如,在Google中輸入查詢並按下WebView中的搜索按鈕時),鍵盤隱藏並且大約需要2-3秒才能調整佈局大小(離開在我的佈局底部留出2-3秒的空白空間)。之後,當選擇textinput時,鍵盤覆蓋WebView(adjustPan)。

如何確保在按下WebView時關閉鍵盤,adjustResize行爲得以維持。

我已經試過重新設置AdjustResize(例如,來自onTouch),但這沒有影響:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

我也試過following solution但是這給沒有變化。

此外,我認爲這可能不是焦點問題(因爲鍵盤確實出現,並且webview確實響應)。我也從我的查看要求重點:

webView.setFocusable(true); 
    webView.setFocusableInTouchMode(true); 
+0

我想創建一個新項目,複製並粘貼一些代碼,並查看您在我的設備上面臨的問題。你可以做一個編輯,以便這可能嗎? – NecipAllef

+0

@NecipAllef我已經發布了一些文件。但是,如果您希望我可以向您發送完整的項目。電子郵件(24HR)l:[email protected] – Mdlc

+0

我已經看到了您的WebView源代碼,它大約有1.2k行代碼,我相信它們中的大多數甚至與您的問題沒有關係。如果您可以提供一些代碼,使我們能夠觀察問題,但也不難編譯或調試,那麼您可以更快地獲得幫助。所以我建議你創建一個示例項目並分享它。我相信它可以通過Github。 – NecipAllef

回答

0

它竟然是,當你在web視圖,或者如果的WebView佈局間接地改變(執行佈局轉換例如調整在RelativeLayout的web視圖上面的元素時導致也被調整了WeView)顯示和隱藏鍵盤可能會導致一些奇怪的行爲:

  • AdjustResize行爲可能會丟失(如問題所示)
  • 的WebView調整鍵盤後的需要更長的時間再進行正常。
  • 的WebView性能下降

什麼解決這個問題對我來說,是爲了防止在WebView中以任何方式佈局的變化(在旋轉佈局重新加載不會出現導致此)。在我的情況下,我顯示並隱藏工具欄,導致WebView調整大小(並填充屏幕)。