检测用户打开键盘

时间:2013-09-13 06:25:27

标签: android android-softkeyboard

我想检查一下,如果用户打开键盘,我想显示一个警告框。我怎样才能做到这一点?如果需要后台服务,任何人都可以告诉我如何检测用户打开键盘。

我想通过正常使用手机来检测。如果用户打开键盘进行通话,则会显示一个警告框。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

试试这种方式

try {
        activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

                Rect r = new Rect();
                getScreenRootView().getWindowVisibleDisplayFrame(r);


                int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top);
                if (heightDiff > 100) {
                    // keypad is open
                } 
            }
        });
    } catch (Throwable e) {
        e.printStackTrace();
    }