Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android隱藏輸入法隱藏軟鍵盤全解

android隱藏輸入法隱藏軟鍵盤全解

編輯:關於Android編程

一些項目中需要隱藏輸入法,比如登錄頁面,登錄成功後需要隱藏輸入法,還有比如發布某個帖子,或者消息是
發布成功後需要隱藏輸入法,再比如一個頁面中既有EditText 又有Spinner等控件,當你輸入完就去點擊
Spinner控件是軟鍵盤是沒有被隱藏的,這是是影響用戶體驗的。
這裡我寫了一個靜態的方法,有需要的可以放在Util包中,需要用的時候直接調用就ok
/**
* 隱藏輸入法面板
*
* @param activity
*/
public static void hideInputMethod(Activity activity) {
if (null == activity) {
return;
}

if (null != activity.getCurrentFocus() && null != activity.getCurrentFocus().getWindowToken())

{

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
}


參數是Activity,某個Activity中調用時,直接把這個Activity穿進去就行了,

例如,Util.hideInputMethod(MainActiviity.class);util是通用類名。

還有些情況下也需要隱藏輸入法,比如說發布一寫信息後,跳轉到另一個界面時,在第二個界面居然還能看到輸

入法,這樣的用戶體驗太差了


那麼問題來了,怎麼解決這個問題呢,答案請看下面
在AndroidMainfirst.xml文件中,你注冊的那個Activity中加入

android:windowSoftInputMode="stateAlwaysHidden|adjustNothing"


windowSoftInputMode這個就是用來控制軟件盤的,下面是幾個值得含義,可以參考看一下。
各值的含義:
【1】stateUnspecified:軟鍵盤的狀態並沒有指定,系統將選擇一個合適的狀態或依賴於主題的設置
【2】stateUnchanged:當這個activity出現時,軟鍵盤將一直保持在上一個activity裡的狀態,無論是隱藏還是顯示
【3】stateHidden:用戶選擇activity時,軟鍵盤總是被隱藏
【4】stateAlwaysHidden:當該Activity主窗口獲取焦點時,軟鍵盤也總是被隱藏的
【5】stateVisible:軟鍵盤通常是可見的
【6】stateAlwaysVisible:用戶選擇activity時,軟鍵盤總是顯示的狀態
【7】adjustUnspecified:默認設置,通常由系統自行決定是隱藏還是顯示
【8】adjustResize:該Activity總是調整屏幕的大小以便留出軟鍵盤的空間
【9】adjustPan:當前窗口的內容將自動移動以便當前焦點從不被鍵盤覆蓋和用戶能總是看到輸入內容的部分

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved