2011-06-18 2 views
3

私が使用してフルスクリーンを実行アプリがあります。このため「adjustResize」のAndroid

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); 

をレイアウトし、android:windowSoftInputMode="adjustResize"はすなわち、それはサイズを変更しない用量、正常に動作していません。

問題を解決する方法はありますか?代わりにandroid:windowSoftInputMode="adjustResize"

答えて

3

あなたはFYI android:windowSoftInputMode="adjustPan"

+0

adjustPanが正常に動作している場合、キーボードのためのスペースを確保するために、アクティビティの一部がオフスクリーンにプッシュされることになります。これはいくつかの状況でうまくいくかもしれませんし、他の人にはまったく受け入れられないかもしれません。 –

4

で試すことができます:これは、既存のAOSPです(Androidのオープンソースプロジェクト)バグ:http://code.google.com/p/android/issues/detail?id=5497

理想的には、このバグが修正されますが、それまで、ここでカップルですそれがどのように回避できるかの考え。これがどのアプリケーションシナリオに関係しているかわからないので、あまり適用できないかもしれません。

  1. 私はこれまでの答えをよく解釈して、adjustPanが正常に動作するようにレイアウトを設計してください。私がここで考えることのできる最初のことは、キーボードがアップしているときに画面上に留まることを意図したヘッダやフッタがないことです。

  2. テキスト入力を受け入れるレイアウトでFLAG_FULLSCREENを使用しないでください。おそらく入力を受け入れるときにステータスバーを表示するのは大したことではないでしょう。しかし、フルスクリーンモードの埋め込み入力フィールド(Webブラウザーなど)を持つコンテンツを表示する場合、これはあまり意味がありません。

  3. 独自のadjustResizeのような動作を実装します。私はこれがうまくいくかどうかは確かではありませんが、キーボードが表示されたときにトラックを表示したり、呼び出しを引き継いだりするクラス(たとえばEditText)を表示させるクラスのサブクラスを書くことができます。キーボードを非表示にします(少なくともonKeyUpとonTouchEventをオーバーライドします)。表示されるときに、ユーザーがさまざまなソフト入力方法をインストールできるため、ソフト入力の高さを推測してコンテンツのサイズを変更してください。私はこれが技術的に困難で極端な必要なしに試みることは妥当でないと信じています。

+0

私はこの回答のdownvoteを理解していません。おそらく、ダウンローダは少し[adjustResize and adjustPanの背景]を望んでいます:http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft? adjustUnspecifiedはデフォルトです。 adjustResizeは、レイアウトが新しい次元(IE、キーボードからマイナスの画面)にリサイズできる限り、最良の動作です。私の最初の答えの2年後、誰かがリンクされたバグスレッド#3の実装を投稿したことにも注意してください:http://stackoverflow.com/a/19494006/1241783 –

関連する問題