开发过程页面中需要监听软键盘的显示和隐藏,无可奈何Android并没有提供这样的监听。
于是乎尝试各种方法,但是结果总是令人蛋疼。
但是功夫不负有心人,最后还是找到了解决的方法:
当显示的高度大于整体的2/3时视为键盘隐藏(我把键盘的高度作为屏幕的1/3高度算的).
/** * 监听软键盘显示隐藏 */ private void addSoftInputListener() { 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) {Logger.i("键盘隐藏");} else {} } });}Logger.i("键盘显示");