這篇“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)”文章吧。
為南陵等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及南陵網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、南陵網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!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è)資訊頻道。