<activity android:windowSoftInputMode=["stateUnspecified", "stateUnchanged", "stateHidden", "stateAlwaysHidden", "stateVisible", "stateAlwaysVisible", "adjustUnspecified", "adjustResize", "adjustPan"] …… > </activity>
在AndroidManifest.xml文件中的Activity有個屬性android:windowSoftInputMode,是用於控制軟鍵盤的。
這個屬性的設置將會影響兩件事情:
1> 軟鍵盤的狀態——是否它是隱藏或顯示——當活動(Activity)成為用戶關注的焦點。
2> 活動的主窗口調整——是否減少活動主窗口大小以便騰出空間放軟鍵盤或是否當活動窗口的部分被軟鍵盤覆蓋時它的內容的當前焦點是可見的。
"stateUnspecified" 軟鍵盤的狀態(是否它是隱藏或可見)沒有被指定。系統將選擇一個合適的狀態或依賴於主題的設置。這個是為了軟件盤行為默認的設置。
"stateUnchanged" 軟鍵盤被保持無論它上次是什么狀態,是否可見或隱藏,當主窗口出現在前面時。
"stateHidden" 當用戶選擇該Activity時,軟鍵盤被隱藏——也就是,當用戶確定導航到該Activity時,而不是返回到它由於離開另一個Activity。
"stateAlwaysHidden" 軟鍵盤總是被隱藏的,當該Activity主窗口獲取焦點時。
"stateVisible" 軟鍵盤是可見的,當那個是正常合適的時(當用戶導航到Activity主窗口時)。
"stateAlwaysVisible" 當用戶選擇這個Activity時,軟鍵盤是可見的——也就是,也就是,當用戶確定導航到該Activity時,而不是返回到它由於離開另一個Activity。
"adjustUnspecified" 它不被指定是否該Activity主窗口調整大小以便留出軟鍵盤的空間,或是否窗口上的內容得到屏幕上當前的焦點是可見的。系統將自動選擇這些模式中一種主要依賴於是否窗口的內容有任何布局視圖能夠滾動他們的內容。如果有這樣的一個視圖,這個窗口將調整大小,這樣的假設可以使滾動窗口的內容在一個較小的區域中可見的。這個是主窗口默認的行為設置。
"adjustResize" 該Activity主窗口總是被調整屏幕的大小以便留出軟鍵盤的空間。
"adjustPan" 該Activity主窗口並不調整屏幕的大小以便留出軟鍵盤的空間。相反,當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分。這個通常是不期望比調整大小,因為用戶可能關閉軟鍵盤以便獲得與被覆蓋內容的交互操作。
代碼控制軟鍵盤顯示隱藏:
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mView.getWindowToken(), 0);