Android 監(jiān)聽軟鍵盤狀態(tài)的實(shí)例詳解
Android 監(jiān)聽軟鍵盤狀態(tài)的實(shí)例詳解
近日遇到要檢測軟鍵盤是否顯示或隱藏的問題,搜了一下網(wǎng)上,最后找到一個(gè)很簡單的,記錄一下。
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) { // 如果高度差超過100像素,就很有可能是有軟鍵盤...
... do something here
}
}
});
但是這個(gè)依賴于Android:windowSoftInputMode="adjustResize",
如果是adjustPan,Activity高度不變就沒用了。然后終于給我找到一個(gè)界面高度不變也能用的辦法,這個(gè)辦法不能監(jiān)聽只能主動去查詢,不過正好我也只需要這樣就行了
InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);
if(imm.hideSoftInputFromWindow(editText.getWindowToken(), 0))
{
imm.showSoftInput(editText,0);
//軟鍵盤已彈出
}
else
{
//軟鍵盤未彈出
}
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Android中控制和禁止ScrollView自動滑動到底部的方法
這篇文章主要給大家介紹了關(guān)于Android中控制和禁止ScrollView自動滑動到底部的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
android使用Messenger綁定Service的多種實(shí)現(xiàn)方法
android使用Messenger綁定Service的多種實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-05-05
react native中的聊天氣泡及timer封裝成的發(fā)送驗(yàn)證碼倒計(jì)時(shí)
這篇文章主要介紹了react native中的聊天氣泡及timer封裝成的發(fā)送驗(yàn)證碼倒計(jì)時(shí)的相關(guān)資料,需要的朋友可以參考下2017-08-08
分享Android平板電腦上開發(fā)應(yīng)用程序不能全屏顯示的問題解決
在一個(gè)8寸屏的Android平板電腦上開發(fā)應(yīng)用程序(游戲程序),開始的時(shí)候,總是不能全屏顯示,也不知道怎么設(shè)置才可以2013-05-05
Android常見XML轉(zhuǎn)義字符(總結(jié))
下面小編就為大家?guī)硪黄狝ndroid常見XML轉(zhuǎn)義字符(總結(jié))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Android自定義View實(shí)現(xiàn)字母導(dǎo)航欄
通常手機(jī)通訊錄都會有索引欄,這篇文章主要介紹了Android自定義View實(shí)現(xiàn)字母導(dǎo)航欄,現(xiàn)在分享給大家。2016-10-10

