android 判斷鍵盤是否彈出
阿新 • • 發佈:2018-12-03
需求:在鍵盤彈出時需要相應操作
解決:監聽鍵盤是否彈出,同時還可以獲取到鍵盤的高度
實現:
edittext.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect = new Rect(); mainActivity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);//獲取當前介面可視部分 int screenHeight = mainActivity.getWindow().getDecorView().getRootView().getHeight();//獲取螢幕高度 int heiDifference = screenHeight - rect.bottom;//獲取鍵盤高度,鍵盤沒有彈出時,高度為0,鍵盤彈出時,高度為正數 if (heiDifference == 0) { //todo:鍵盤沒有彈出時 } else { //todo:鍵盤彈出時 } } });
getDecorView() 獲取的是整個應用的view 包括標題欄,但是不包括狀態列,r.top就是狀態列的高度
轉自https://www.cnblogs.com/gejs/p/4363460.html