1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/**监听软键盘状态 * @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() { @Override public 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; } }); } |