软键盘更改的回调方法?

时间:2014-12-16 10:09:13

标签: android callback keyboard

是否有软键盘上下调用的回调方法。当软键盘上下时,我想做一些动作。我知道检查键盘是上升还是下降。但我应该从某个地方调用该方法。在这里,我不想打电话给它。它应该在软键盘状态发生变化时自动触发。

1 个答案:

答案 0 :(得分:2)

尝试使用此代码,在我的项目中使用

R.id.activityRoot是ParentLayout ID

final View activityRootView = findViewById(R.id.activityRoot);
            activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(
                    new OnGlobalLayoutListener() {
                        @Override
                        public void onGlobalLayout() {

                            try {
                                int heightDiff = activityRootView.getRootView()
                                        .getHeight() - activityRootView.getHeight();
                                if (heightDiff > 100) { // if more than 100 pixels,
                                                        // its probably a
                                                        // keyboard...
                                //do your stuff here keyboard shown
                                }else {     //do your stuff here keyboard not visible }

                            } catch (NullPointerException e) {
                                e.printStackTrace();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }

                    });