源码解读路径:android4.2.2\frameworks\base\services\java\com\android\server\InputMethodManagerService.java
显示软键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
view.requestFocus();
imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);
}
隐藏软键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
如果输入法在窗口上已经显示,则隐藏,反之则显示:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
为防止一进入界面自动弹出软键盘:
1、在OnCreate方法里面加如下代码
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
2、 在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用:
在 AndroidManifest.xml文件中的activity节点下添加:android:windowSoftInputMode=”stateHidden|adjustPan”
stateHidden:是隐藏软键盘的
adjustPan:是保证控件不会因为输入法的弹出而发生形变的。