在百度了很久,找到了一篇监听键盘的显示或隐藏,方法也是比较简单的,原理其实就是监听Activity中的rootView的高度变化情况,只测试了一下键盘的显示和隐藏,是可以监听到的,但是不知道在手动调整rootView的高度,会不会影响判断。。。。。。
View mRootView = getWindow().getDecorView();
mRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
mRootView.getWindowVisibleDisplayFrame(rect);
int rootInvisibleHeight = mRootView.getRootView().getHeight() - rect.bottom;
if(rootInvisibleHeight <= 100){
Toast.makeText(this, "不显示", Toast.LENGTH_SHORT);
} else {
Toast.makeText(this, "显示", Toast.LENGTH_SHORT);
}
}
});