Android 软键盘更改的回调方法?

Android 软键盘更改的回调方法?,android,callback,keyboard,Android,Callback,Keyboard,软键上下是否有回调方法。我想做一些动作时,软键盘是向上和向下。我知道检查键盘是上还是下。但我应该从某处调用该方法。这里我不想叫它。当软键盘状态发生变化时,它应该会自动触发。试试这段代码,它在我的项目中起作用 R.id.activityRoot是父布局id final View activityRootView = findViewById(R.id.activityRoot); activityRootView.getViewTreeObserver().addOnGlo

软键上下是否有回调方法。我想做一些动作时,软键盘是向上和向下。我知道检查键盘是上还是下。但我应该从某处调用该方法。这里我不想叫它。当软键盘状态发生变化时,它应该会自动触发。

试试这段代码,它在我的项目中起作用

R.id.activityRoot
是父布局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();
                            }
                        }

                    });

这是用来检查键盘是向上还是向下的rt?不是回调方法na?在我点击布局中的文本视图或按钮时添加此代码后。键盘消失:(如何防止它?让我们来看看。