Android 如何收听SoftInputMethod';s显示/隐藏事件?

Android 如何收听SoftInputMethod';s显示/隐藏事件?,android,Android,我试图用这种方式使用BroadcastReceiver来实现它。 但它不起作用。显示/隐藏事件从未进入我的接收器 filter = new IntentFilter(); filter.addAction(Intent.ACTION_INPUT_METHOD_CHANGED); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); registerReceiver(recei

我试图用这种方式使用BroadcastReceiver来实现它。 但它不起作用。显示/隐藏事件从未进入我的接收器

        filter = new IntentFilter();
        filter.addAction(Intent.ACTION_INPUT_METHOD_CHANGED);

        filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
        registerReceiver(receiver, filter);  
我希望有个好人能帮我

就这些了,希望能对你有所帮助

OnGlobalLayoutListener mOnGlobalLayoutListener;
private void performListenKeyboard() {
    if (mOnGlobalLayoutListener == null) {
        mOnGlobalLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {

                final int screenHeight = mRootView.getRootView().getHeight();
                int keyboardHeight = screenHeight - mRootView.getHeight();
                if (keyboardHeight < screenHeight / 3 || !isShowKeyboard) {
                    return;
                }
                // keyboard show,do something

                // at last , remove listener
                mRootView.getRootView().getViewTreeObserver().removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
            }
        };
    }
    // register GlobalLayoutListener callback
    mRootView.getRootView().getViewTreeObserver()
            .addOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
OnGlobalLayoutListener monglobalayoutListener;
私有void performListenKeyboard(){
if(mOnGlobalLayoutListener==null){
mOnGlobalLayoutListener=新建ViewTreeObserver.OnGlobalLayoutListener(){
@凌驾
公共图书馆{
final int screenHeight=mRootView.getRootView().getHeight();
int keyboardHeight=屏幕高度-mRootView.getHeight();
如果(键盘高度<屏幕高度/3 | | |!isShowKeyboard){
回来
}
//键盘秀,做点什么
//最后,删除侦听器
mRootView.getRootView().getViewTreeObserver().removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
};
}
//注册GlobalLayoutListener回调
mRootView.getRootView().getViewTreeObserver()
.addOnGlobalLayoutListener(mOnGlobalLayoutListener);
}

您的问题在哪里?什么不起作用?请遵循这些指导原则:对不起,我忘记发布代码了,我刚刚发布了。