文章目录
1、InputMethodManager介绍
InputMethodManager是一个用于控制显示或隐藏输入法面板的类。
获取InPutMethodManager的方法很简单:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
2、InputMethodManager用法
2.1、显示软键盘
//et获取焦点
et.requestFocus();
//获取imm
final InputMethodManager imm = (InputMethodManager) et.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (null != imm) {
//显示软键盘
imm.showSoftInput(et,InputMethodManager.SHOW_FORCED);
}
2.2、隐藏软键盘
//et获取焦点
et.requestFocus();
//获取imm
final InputMethodManager imm = (InputMethodManager) et.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (null != imm) {
//隐藏软键盘
imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
//or
imm.hideSoftInputFromWindow(et.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
}
2.3、实现输入法在窗口上切换显示,如果输入法在窗口已经显示,则隐藏;如果已经隐藏,则显示软键盘。
//et获取焦点
et.requestFocus();
//获取imm
final InputMethodManager imm = (InputMethodManager) et.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if (null != imm) {
//输入法在窗口已经显示,则隐藏;如果已经隐藏,则显示软键盘
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
}
2.4、判断当前软键盘状态是打开 or 关闭
InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
boolean isOpen=imm.isActive();
//isOpen为true,则当前输入法是打开的;反之则是关闭的。