使用:getViewTreeObserver().addOnGlobalLayoutListener(mGlobalLayoutListener);
注意:记得在结束时remove掉(getViewTreeObserver().removeGlobalOnLayoutListener(mGlobalLayoutListener);)
private ViewTreeObserver.OnGlobalLayoutListener mGlobalLayoutListener=new ViewTreeObserver.OnGlobalLayoutListener(){ @Override public void onGlobalLayout() { Rect r = new Rect(); ((BindDeviceActivity)getContext()).getWindow().getDecorView().getWindowVisibleDisplayFrame(r); int screenHeight = ((BindDeviceActivity)getContext()).getWindow().getDecorView().getRootView().getHeight(); int heightDifference = screenHeight - r.bottom; L.e("Keyboard Size", "Size: " + heightDifference); if (heightDifference == 0) { L.e("input window hidden"); }else { L.e("input window show"); } } };