0

画面の下部にタブがある TabActivity があります。最初のタブは、画面上部の固定ヘッダー レイアウトと、その下にあるいくつかの EditText コントロールを含む ScrollView で構成されるアクティビティをホストします。ScrollView は、ヘッダー バーと下部のタブの間でコンテンツをうまくスクロールします。問題は、EditText がタップされ、ソフト キーボードが表示されるときに発生します。キーボードが表示されたときのビューの動作を制御するにwindowSoftInputModeは、マニフェスト XML ファイルで属性を使用する必要があることを理解しています。ただし、次の設定の両方を試しました。

adjustResize- ScrollView の正しい機能を提供し、ヘッダー レイアウトは画面上部に固定されたままです。ただし、タブ バー コントロールはキーボードの上に押し上げられます。

adjustPan- タブ バー コントロールはキーボードの下の画面の下部に残りますが (これは私が望んでいることです)、他のビューはキーボードによって押し上げられます。つまり、ヘッダー レイアウトが画面から押し出されます。

両方の設定の特性が必要なようですが、一緒に使用することはできません。設定について聞いたことがありますadjustNothingが、これを試してみると、この設定が認識されないため、プロジェクトのビルドに失敗します。タブ ホスト アクティビティにはadjustPanコンテンツ アクティビティが必要adjustResizeだと思いますが、タブ ホスト アクティビティが優先されるため、2 つを組み合わせることはできないようです。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これに対する直接的な解決策がないため、一種のハックに頼りました。TabHost アクティビティを に設定adjustResizeし、ソフト キーボードの表示/非表示時にタブ バー コントロール (TabWidget) を非表示/非表示にするコードを記述しました。ここのテクニックを使用して、最終的にかなり良い結果を得ることができました:ソフトキーボードがオンになっているときにレイアウトを調整して、キーボードの表示/非表示を検出します。

于 2013-10-18T13:06:49.207 に答える