android 监听软键盘的弹出与隐藏
程序员文章站
2022-04-19 23:11:20
...
首先在activity定义一个全局变量isHide = true;
然后在onCreate方法中调用addSoftInputListener();
/**
* 监听软键盘显示隐藏
*/
private void addSoftInputListener() {
final View decorView = getWindow().getDecorView();
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
decorView.getWindowVisibleDisplayFrame(rect);
int displayHight = rect.bottom - rect.top;
int hight = decorView.getHeight();
if (displayHight > hight / 3 * 2) {
if(!isHide){ //此参数可防止多次执行打印“键盘隐藏”
Log.i("ssss","键盘隐藏");
}
isHide = true;
} else {
if (isHide){
Log.i("ssss","键盘显示");
}
isHide = false;
}
}
});
}
推荐阅读
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
Android开发之RadioGroup的简单使用与监听示例
-
Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)
-
Android编程实现点击EditText之外的控件隐藏软键盘功能
-
DownEditTextView【自定义Edittext对Android 软键盘向下的监听】
-
android截图事件监听的原理与实现
-
Android Dialog与软键盘的正确打开方式
-
Android 弹出Dialog时隐藏状态栏和底部导航栏的方法
-
android 中view控件的隐藏与显示动作
-
Android 控件的隐藏与显示