之前本人也遇到一個關于獲取軟鍵盤的狀態的問題,在網上找了很多資料,基本上回答都是用getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED來判斷軟鍵盤是否打開,若相等則為打開,然后你就可以根據這段代碼進行后續操作了。但是我試了好久,不管是軟鍵盤彈出還是關閉getWindow().getAttributes().softInputMode的值一直是0,至于為什么值一直為0我也不清楚,
不過后來我又找到了一種新的解決辦法:
直接創建一個InputMethodManager對象,InputMethodManager imm = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE),通過該對象的isActive()方法來判斷,imm .isActive()如果放回true,則說明軟鍵盤的狀態是打開的,接下來就好辦了,直接根據imm .isActive()的返回狀態來進行后續操作(關閉軟鍵盤),
代碼如下:
public void hideInputWindow(Activity context){ if(context==null){ return; } final View v = ((Activity) context).getWindow().peekDecorView(); if (v != null && v.getWindowToken() != null) { InputMethodManager imm = (InputMethodManager) context.getSystemService(context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } }以上就是小編為大家帶來的Android判斷軟鍵盤的狀態和隱藏軟鍵盤的簡單實例全部內容了,希望大家多多支持武林網~
新聞熱點
疑難解答