Android判斷軟鍵盤彈出并隱藏的簡單完美解決方法(推薦)
最近項目中有一個編輯框,下面是個ListView。在觸發(fā)編輯框彈出軟鍵盤后,ListView還能滑動,并且ListView的item還能響應(yīng)單擊。這樣的體驗效果很不好。于是便想在滑動或單擊item時判斷鍵盤是否彈出,若彈出,則把它隱藏。
網(wǎng)上一搜,發(fā)現(xiàn)Android并沒有直接提供軟鍵盤的彈出與隱藏判斷,一些解決方案諸如判斷父控件的高度或者判斷
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN) 隱藏鍵盤;
的方法并沒有用,于是便從官方文檔著手。
發(fā)現(xiàn)InputMethodManager有一個方法isActive(View view):如果view是輸入法的活動view,則返回true。也就是說,如果是由view觸發(fā)彈出軟鍵盤,則返回true。哇,那問題就好辦了
if(isActive(edittext)) 隱藏鍵盤
接著讓另一個view強制獲取焦點,這樣isActivite(ediitext)就為false.
這個方法比較簡單,代碼比較短,也很好理解,希望能夠幫助有需要的人,也不枉費我調(diào)試幾個小時的功夫。
附上代碼:
InputMethodManager inputMethodManager = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){
if(inputMethodManager.isActive(searchEditText)){<br> //因為是在fragment下,所以用了getView()獲取view,也可以用findViewById()來獲取父控件
getView().requestFocus();//使其它view獲取焦點.這里因為是在fragment下,所以便用了getView(),可以指定任意其它view
inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
return true;
}
return false;
}
ps: 如果是手動彈出鍵盤,getActivity().getCurrentFocus()改成searchEditText.并且手動彈出的鍵盤isActivie()失效,可用標記來判斷.
以上就是小編為大家?guī)淼腁ndroid判斷軟鍵盤彈出并隱藏的簡單完美解決方法(推薦)全部內(nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
Android讀取本地json文件的方法(解決顯示亂碼問題)
這篇文章主要介紹了Android讀取本地json文件的方法,結(jié)合實例形式對比分析了解決顯示亂碼問題的方法,需要的朋友可以參考下2016-06-06
Android Manifest中meta-data擴展元素數(shù)據(jù)的配置與獲取方式
這篇文章主要介紹了Android Manifest中meta-data擴展元素數(shù)據(jù)的配置與獲取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android虛擬導(dǎo)航欄遮擋底部的輸入框的解決方法
下面小編就為大家分享一篇Android虛擬導(dǎo)航欄遮擋底部的輸入框的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Android使用JobScheduler定期推送本地通知實例代碼
本篇文章主要介紹了Android使用JobScheduler定期推送本地通知實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
android studio安裝時 AVD出現(xiàn)問題如何快速解決
這篇文章主要介紹了安裝android studio時 AVD出現(xiàn)問題如何快速處理,其實解決方法也很簡單,文中通過截圖的形式給大家及時的非常詳細,對大家的工作或?qū)W習(xí)具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Android CardView+ViewPager實現(xiàn)ViewPager翻頁動畫的方法
本篇文章主要介紹了Android CardView+ViewPager實現(xiàn)ViewPager翻頁動畫的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06
詳解Android中提示對話框(ProgressDialog和DatePickerDialog和TimePickerDi
這篇文章主要介紹了詳解Android中提示對話框(ProgressDialog和DatePickerDialog和TimePickerDialog&PopupWindow)的相關(guān)資料,需要的朋友可以參考下2016-01-01

