隐藏软键盘的终极方法:

public class SoftKeyboardUtil {    /**     * 隐藏软键盘(只适用于Activity,不适用于Fragment)     */    public static void hideSoftKeyboard(Activity activity) {        View view = activity.getCurrentFocus();        if (view != null) {            InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);            inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);        }    }    /**     * 隐藏软键盘(可用于Activity,Fragment)     */    public static void hideSoftKeyboard(Context context, List viewList) {        if (viewList == null) return;        InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);        for (View v : viewList) {            inputMethodManager.hideSoftInputFromWindow(v.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);        }    }}

那 SoftKeyboardUtil 第二个方法的 List viewList 参数是什么, viewList 中需要放的是当前界面所有触发软键盘弹出的控件。 比如一个登陆界面, 有一个账号输入框和一个密码输入框, 需要隐藏键盘的时候, 就将两个输入框对象放在 viewList 中, 作为参数传到 hideSoftKeyboard 方法中即可。

 

如下方法会弹出的隐藏,隐藏的弹出

public static void hideKeyboard() {    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);    imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);}

 

详细见API:

\android-sdk\sources\android-26\android\view\inputmethod\InputMethodManager.java


 

Android 手动显示和隐藏软键盘

https://blog.csdn.net/changsimeng/article/details/72853760

 

1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 

2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘

3、调用隐藏系统默认的输入法

((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  //(WidgetSearchActivity是当前的Activity)  

4、获取输入法打开的状态

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); boolean isOpen = imm.isActive();//isOpen若返回true,则表示输入法打开

 

更多相关文章

  1. Android 四种获取屏幕宽度的方法总结
  2. Android自定义dialog简单实现方法
  3. android使用sharedPreferences()方法读写文件操作
  4. Android getWindow().setFlags方法 设置窗体全屏点亮背景模糊 &&
  5. Android 软键盘相关
  6. Android:Activity中onCreate方法的参数及用途
  7. Android 中自定义软键盘
  8. 最新Android 7.1.1 截屏方法
  9. android 修改输入法中拼写检测默认值

随机推荐

  1. android 每天定时提醒功能实现
  2. 从android游戏框架看其生命周期
  3. Android中Message机制的灵活应用(一)
  4. Android四大核心——Activity
  5. Android(安卓)Studio在线调试Android(安
  6. libevent 在 Android(安卓)上的一个改进
  7. Android中Message机制的灵活应用
  8. Android:改变 Toolbar 的文字和溢出图标颜
  9. Android(安卓)GUI系统学习1:Gralloc
  10. Android获取已安装应用信息(图标,名称,版本