首先在activity定义一个全局变量isHide = true;
然后在onCreate方法中调用addSoftInputListener();
/**
* 监听软键盘显示隐藏
*/
private void addSoftInputListener() {
final View decorView = 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();
if (displayHight > hight / 3 * 2) {
if(!isHide){ //此参数可防止多次执行打印“键盘隐藏”
Log.i("ssss","键盘隐藏");
}
isHide = true;
} else {
if (isHide){
Log.i("ssss","键盘显示");
}
isHide = false;
}
}
});
}