這篇“Android中如何監(jiān)聽(tīng)軟鍵盤(pán)狀態(tài)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Android中如何監(jiān)聽(tīng)軟鍵盤(pán)狀態(tài)”文章吧。
Android 監(jiān)聽(tīng)軟鍵盤(pán)狀態(tài)的實(shí)例詳解
activityRoot是activity的根view,就是xml里面的第一個(gè)view,給它設(shè)置一個(gè)id.
final View activityRootView = findViewById(R.id.activityRoot); activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight(); if (heightDiff > 100) { // 如果高度差超過(guò)100像素,就很有可能是有軟鍵盤(pán)... ... do something here } } });
但是這個(gè)依賴(lài)于A(yíng)ndroid:windowSoftInputMode="adjustResize",
如果是adjustPan,Activity高度不變就沒(méi)用了。然后終于給我找到一個(gè)界面高度不變也能用的辦法,這個(gè)辦法不能監(jiān)聽(tīng)只能主動(dòng)去查詢(xún),不過(guò)正好我也只需要這樣就行了
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); if(imm.hideSoftInputFromWindow(editText.getWindowToken(), 0)) { imm.showSoftInput(editText,0); //軟鍵盤(pán)已彈出 } else { //軟鍵盤(pán)未彈出 }
以上就是關(guān)于“Android中如何監(jiān)聽(tīng)軟鍵盤(pán)狀態(tài)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。