Android 如何收听SoftInputMethod';s显示/隐藏事件?
我试图用这种方式使用BroadcastReceiver来实现它。 但它不起作用。显示/隐藏事件从未进入我的接收器Android 如何收听SoftInputMethod';s显示/隐藏事件?,android,Android,我试图用这种方式使用BroadcastReceiver来实现它。 但它不起作用。显示/隐藏事件从未进入我的接收器 filter = new IntentFilter(); filter.addAction(Intent.ACTION_INPUT_METHOD_CHANGED); filter.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY); registerReceiver(recei
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);
}
您的问题在哪里?什么不起作用?请遵循这些指导原则:对不起,我忘记发布代码了,我刚刚发布了。