2

Webview で、ユーザーがテキスト フィールドを選択すると、表示されるキーボードが下のテキスト フィールドを覆うという問題を解決しようとしています。代わりに、フラグ SOFT_INPUT_ADJUST_PAN のように、テキスト フィールドをキーボードのすぐ上に移動する動作が必要です。

テストに基づくと、Webview ではデフォルトでフィールドの下にキーボードが表示されているようです。しかし、私の WebView はフルスクリーンです。アクティビティで this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN) を呼び出しています); これにより、Androidはデフォルトの「パンとスキャン」動作を停止するようです。

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN) と getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) を呼び出そうとしましたが、修正されませんでした。

タイトル バーとステータス バーの両方を非表示にしたいので、アクティビティをフルスクリーンに設定する必要があります。ステータス バーを非表示にする別の方法がない限り、それを削除することはできません。

この問題を解決する方法について何か考えはありますか?

ローラン

4

2 に答える 2

0

FLAG_FULLSCREEN フラグを削除する必要があります。OS 機構のどこかにバグがあり、いくつか掘り下げたところ、次のことがわかりました。

  • Webビューの周りに余分なスクロールビューがないと、adjustPanは機能しませんでした。残念ながら、追加のスクロール ビューも常に役立つとは限りません。
  • ウェブビューが含まれているアクティビティにFLAG_FULLSCREENが存在しない場合、adjustScrollは機能します。

要約すると、WebView に関して最も安全なオプションは、フルスクリーン アクティビティではなく、adjustResize です。

于 2013-04-09T11:44:34.643 に答える
0

私にとってこれはうまくいきました:

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
于 2015-07-05T16:01:14.247 に答える