/**
* 软键盘工具类
*/
public class SoftInputUtil {
// 软键盘是否弹出
public static boolean isSoftShowing(Activity activity) {
//获取当前屏幕内容的高度
int screenHeight = activity.getWindow().getDecorView().getHeight();
//获取View可见区域的bottom
Rect rect = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
return screenHeight - rect.bottom != 0;
}
// 隐藏软键盘
public static void hideKeyboard(MotionEvent event, View focusView,
Activity activity) {
// if (focusView == null || !(focusView instanceof EditText)) {
// return;
// }
// 软键盘显示时才隐藏
if (!SoftInputUtil.isSoftShowing(activity)) {
return;
}
AppUtils.printLog("隐藏键盘");
try {
int[] location = {0, 0};
focusView.getLocationInWindow(location);
int left = location[0], top = location[1], right = left
+ focusView.getWidth(), bottom = top + focusView.getHeight();
// 判断焦点位置坐标是否在空间内,如果位置在控件外,则隐藏键盘
if (event.getRawX() < left || event.getRawX() > right
|| event.getY() < top || event.getRawY() > bottom) {
// 隐藏键盘
IBinder token = focusView.getWindowToken();
InputMethodManager inputMethodManager = (InputMethodManager) activity
.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(token,
InputMethodManager.HIDE_NOT_ALWAYS);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
android触摸界面隐藏软键盘&查看软键盘状态
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 隐藏软键盘 显示软键盘 一行代码实现Android软键盘与EditText的交互 http://mp.weixin...
- 本文参照 Android 软键盘的显示和隐藏,这样操作就对了进行整理修正 Android软键盘系列: Androi...
- 隐藏软键盘 方法一: >在 AndroidMainfest.xml中选择哪个activity,设置windowSo...
- 隐藏虚拟键盘 网上可以搜到各种方法,实际测试中,我的开发用机中,仅仅下面这个方法有效,记录一下。 在Activit...