监听系统软键盘的显示与隐藏
来源:互联网 发布:怎么找淘宝售后服务 编辑:程序博客网 时间:2024/05/16 04:52
监听系统软键盘的显示与隐藏
关于监听软键盘的显示与隐藏,本人在网上看到这样的方法:自定义view,并重写onSizeChanged()方法,在onSizeChanged(int w, int h,int oldw,int oldh) 方法里监
听界面大小的变化来判断软键盘的弹出问题。
但是如果不想多一个文件,又不想自定义view呢?
下面是本人的实现:
在我们的应用中弹出输入法的目的是想在EditText中输入内容,现在本人就通过EditText来实现监听软件盘的显示与隐藏:
private boolean softInputIsHide = true; //输入法是否在显示
private int editPosY = -1; //记录edit在屏幕的初始的位置Y
//下面2个监听用户监听输入法是否弹出
edit.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Overridepublic void onGlobalLayout() {
int[] location = new int[2];edit.getLocationOnScreen(location);editPosY = location[1];//保存edit在屏幕的初始Y位置//DebugUtils.printInfo(TAG, "addOnGlobalLayoutListener edit pos:[" + location[0] + "," + location[1] + "]");edit.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
edit.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
@Overridepublic boolean onPreDraw() {
int[] location = new int[2];edit.getLocationOnScreen(location);//DebugUtils.printInfo(TAG, "addOnPreDrawListener dh=" + location[1]);if(editPosY == location[1]){
softInputIsHide = true;
}else{
softInputIsHide = false;
}
return true;
}
});
在本方法中是用来监听当点击EditText时弹出软键盘的(对于页面跳转直接弹出软件盘未做测试),当然AndroidManifest.xml中activity的android:windowSoftInputMode的
部分情形可能对本方法有影响(未测试所有情形)。
注:stateHidden|adjustResize|adjustPan等测试过可行
0 0
- 监听系统软键盘的显示与隐藏
- 监听软键盘的显示与隐藏
- 如何监听软键盘的显示与隐藏
- Android监听软键盘的显示与隐藏
- Android监听软键盘的显示与隐藏
- Android 监听软键盘的显示与隐藏
- android 监听软键盘的显示与隐藏
- Android 监听软键盘的显示与隐藏
- Android监听软键盘的显示与隐藏
- 如何监听软键盘的显示与隐藏
- 监听软键盘的显示和隐藏
- 监听软键盘的显示隐藏
- Android软键盘的隐藏显示监听
- 监听软键盘的弹起与隐藏
- 关于android 软键盘显示与隐藏监听
- Android软键盘(六)如何监听到软件盘显示与隐藏的事件
- 安卓开发技术:监听软键盘的显示与隐藏
- 安卓开发技术:监听软键盘的显示与隐藏
- socket通讯原理以及tcp、ip三次握手机制学习
- 继承
- 理解 RPO 与 RTO
- FishEye 连接 VisualSVNServer失败
- nyoj 239 月老的难题 【二分图&&最大匹配&&匈牙利算法】
- 监听系统软键盘的显示与隐藏
- (二十三)变量名的命名
- 图像特征提取概述
- 一个蒙文系统设计与实现
- OD command插件命令
- [TwistedFate]TabBarController
- scala None null Nil的说明
- (二十四)整型short,int,long,long long
- 2007