android 监听软键盘的弹出与隐藏

首先在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;
                }
            }
        });
    }


猜你喜欢

转载自blog.csdn.net/m940034240/article/details/77483243