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

