/**监听软键盘状态 * @param activity * @param listener */public static void addOnSoftKeyBoardVisibleListener(Activity activity, final OnSoftKeyBoardVisibleListener listener) {final View decorView = activity.getWindow().getDecorView();decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {Rect rect = new Rect();decorView.getWindowVisibleDisplayFrame(rect);int displayHight = rect.bottom - rect.top;int hight = decorView.getHeight();boolean visible = (double) displayHight / hight < 0.8; Log.d(TAG, "DecorView display hight = " + displayHight);Log.d(TAG, "DecorView hight = " + hight);Log.d(TAG, "softkeyboard visible = " + visible); if(visible != sLastVisiable){listener.onSoftKeyBoardVisible(visible);}sLastVisiable = visible;}});}