仮想キーボードが下部のナビゲーションバーを突き上げる問題の解決


プロファイルにナビゲーションバーがあるactivityノードを見つけます
設定:android:windowSoftInputMode=「adjustPan」でいい
 
原理分析:
一、ソフトキーボード表示の原理ソフトディスクの本質は何ですか?ソフトキーボードは実はDialogです!InputMethodServiceは、入力方式のDialogを作成し、このDialogのWindowのいくつかのパラメータ(Gravityなど)を下部または全画面に表示できるように設定しました.入力ボックスをクリックすると、アクティブなメインウィンドウが調整され、入力方式に対応するスペースが空けられ、Dialogが下部に表示されるか、フルスクリーンに表示されます.二、アクティブメインウィンドウ調整androidはwindowSoftInputModeという属性を定義し、プログラムがアクティブメインウィンドウの調整方法を制御できるようにした.AndroidManifetでxmlでActivityを設定します.例えば、android:windowSoftInputMode="stateUnchanged|adjustPan"この属性のオプションの値は2つの部分があり、一部はソフトキーボードの状態制御であり、もう一部はアクティブメインウィンドウの調整である.前の部分では議論しないで、読者にandroidドキュメントを自分で参照してください.
モード1、圧縮モードwindowSoftInputModeの値がadjustResizeに設定されている場合、Activityメインウィンドウは常にソフトキーボードのスペースを残すためにサイズを調整されます.
下部のナビゲーションバーも突き上げられます
モード2、画面移動モードwindowSoftInputModeの値がadjustPanに設定されている場合、Activityメインウィンドウは画面のサイズを調整せず、ソフトキーボードのスペースを残す.逆に、現在のウィンドウの内容は自動的に移動し、現在のフォーカスがキーボードで上書きされず、ユーザーが常に入力内容の部分を見ることができるようにします.これは通常、サイズを調整するよりも望ましくありません.
下部のナビゲーションバーは実際には持ち上げられません.入力ボックスが遮断されない場合、このモードではレイアウトは調整されませんが、入力ボックスが遮断されるとウィンドウが平行移動します.すなわち、このモードは常に入力ボックスを可視に保つ.次の図では、タイトルバーを含むウィンドウ全体を上に移動して、テキストボックスが表示されるようにします.
モード3オートモードプロパティwindowSoftInputModeがadjustUspecifiedに設定されている場合、Activityメインウィンドウがソフトキーボードのスペースを残すようにサイズを変更するかどうか、ウィンドウの内容が画面上の現在の焦点で表示されるかどうかは指定されません.ウィンドウのコンテンツがスクロールできるレイアウトビューがあるかどうかに主に依存するモードが自動的に選択されます.このようなビューがある場合、このウィンドウはサイズを調整し、スクロールウィンドウの内容を小さな領域で表示できると仮定します.これはメインウィンドウのデフォルトの動作設定です.すなわち,システムは自動的に平行移動モードを採用するか圧縮モードを採用するかを決定し,決定要因はコンテンツがスクロールできるかどうかにある.
まとめ、
WindowSoftInputModeプロパティの説明:
                      。               :
1.      ——         ——   (Activity)         。
2.        ——                                 
 
      ( "stateUnspecified" "adjustUnspecified"  )           
                ,   ”state…”    ”adjust…”    。
【A】stateUnspecified:           ,                     
【B】stateUnchanged:   activity   ,            activity    ,         
【C】stateHidden:    activity ,        
【D】stateAlwaysHidden:  Activity        ,          
【E】stateVisible:         
【F】stateAlwaysVisible:    activity ,          
【G】adjustUnspecified:    ,                
【H】adjustResize: Activity                   
【I】adjustPan:                                        

参照先:http://blog.csdn.net/breeze666/article/details/27082419