2015-09-06 6 views
6

WebView(SlidingTabLayoutを持つViewPager内のフラグメント内)があります。キーボードの外側をクリックしてキーボードを閉じた後、AdjustResizeが機能しない

WebViewを使用して入力する場合、レイアウトがサイズ変更されて入力が表示されるようにします。

WebViewでテキスト入力をクリックすると、ソフトキーボードが表示され、レイアウトのサイズが変更されます。テキストを入力して、ソフトキーボードの戻るボタンを使用して送信するか、戻るボタンを使用して入力をキャンセルすることができます。この後、キーボードが消え、レイアウトのサイズが戻されます。 AdjustResizeの動作を修正します。

しかし、ソフトキーボードの外側をクリックしてキーボードを閉じると(たとえば、Googleでクエリを入力してWebViewで検索ボタンを押すと)、キーボードが隠れ、レイアウトのサイズ変更に約2〜3秒かかります私のレイアウトの最下部に2〜3秒間空白があります)。その後、テキスト入力を選択すると、キーボードはWebView(adjustPan)をオーバーレイします。

WebViewを押してキーボードを閉じると、adjustResizeの動作が維持されることを確認するにはどうすればよいですか。

私は(例えばonTouchから)の再設定AdjustResizeを試してみたが、これは効果がありません:

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

それはあなたがWebViewの上またはRelativeLayoutにWebViewの上記の要素のサイズを変更する際のWebViewのレイアウトは、例えば(間接的に変更された場合、レイアウト変換を実行するときことであることが判明しましたそれは、キーボードの表示と非表示は、いくつかの奇妙な動作を引き起こす可能性があります)WeViewもリサイズされます:

  • AdjustResizeの動作が
  • WebViewのリサイズのキーボードの後に​​は、通常、その後長い時間がかかることができます)、質問に示されているように(失われる可能性が。
  • のWebViewのパフォーマンスは私のために、この問題を解決何

は、(これを引き起こすことが表示されない回転時のレイアウトのリロード)どのような方法でのWebView内のレイアウト変更を防ぐためだった減少します。私の場合、私はツールバーを表示して隠していたので、WebViewのサイズを変更して画面に表示させてしまいました。

関連する問題