键盘的展开和收起主要使用到类InputMethodManager:http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html

其大致方法如下:

/**
     * 隐藏键盘的方法
     * @param context
     */
    public static void hideKeyboard(Activity context) {
        InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
        // 隐藏软键盘                imm.hideSoftInputFromWindow(context.getWindow().getDecorView().getWindowToken(), 0);
    }

public static void hide_keyboard_from(@NonNull Context context, View view) {InputMethodManager inputMethodManager =(InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
}
public static void show_keyboard_from(@NonNull Context context, View view) {InputMethodManager inputMethodManager =(InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
}

在展开和收起方法调用的时候,都要求传入第二个参数。大致有以下四种:

1、HIDE_IMPLICIT_ONLY:indicate that the soft input window should only be hidden if it was not explicitly shown by the user.

2、HIDE_NOT_ALWAYS:to indicate that the soft input window should normally be hidden, unless it was originally shown with

3、SHOW_FORCED:indicate that the user has forced the input method open (such as by long-pressing menu) so it should not be closed until they explicitly do so.

4、SHOW_IMPLICIT:indicate that this is an implicit request to show the input window, not as the result of a direct request by the user.

1和2是用于收起键盘的,3和4是用于展开键盘的。

注意:如果用户是点击输入框弹出的键盘,则调用1是无法隐藏的,系统此时判断使用户有意呼唤键盘的。调用2则可以收起键盘;

如果用户是使用3作为参数显示键盘的,则1和2都是无法隐藏键盘的,此时需要用参数0,强制隐藏一切键盘。

如果用户是使用4)作为参数显示键盘的,则1)和2)都是可以隐藏键盘的。

总结起来就是:Forced > explicit > implicit。

对于隐藏键盘,其中1是属于implicit,2是属于explicit,0则是属于force;

对于显示键盘,则4是属于implicit,输入框呼出属于explicit,3则是属于force;

只有隐藏的级别>=展开的级别,才能将键盘隐藏掉。

转载于:android 展开键盘,【Android】键盘的展开和收起_赵Canber的博客-CSDN博客

Andoird 软键盘的弹出、收起(二)相关推荐

  1. html5自动收回键盘,如何监听移动端软键盘的弹出和收回?

    调用移动端的软键盘,一般是和TextInput的操作绑定的. 当点击输入文本框进人输入状态的时候移动端会自动调用软键盘,当输入完毕,点击输入文本框的外部区域或关闭软键盘按钮可完成软键盘收回状态的操作. ...

  2. android中监听软键盘的弹出与隐藏,并获取软键盘的高度

    最近项目中有一个需求上弹出软键盘的时候,输入框位移至输入框上方,但是Activity中其他的VIew都不动.这个需求需要监听软软键盘的弹出与隐藏,并获取键盘的高度.上网找了一下发现,Android竟然 ...

  3. android 弹出键盘 底部控件上移,如何设置底部控件view随着软键盘的弹出而上移...

    1. 概述 在开发中,我们可能会遇到一个常见的效果,就是点击EditText输入框,软键盘随着EditText输入框同时上移,实现方式如下: 给EditText 外层添加一个 ScrollView,然 ...

  4. Android 软键盘不能弹出

    记录一次软键盘不能调出来的问题 一.前提条件 设置其所在Activity,AndroidManifest.xml属性 android:windowSoftInputMode="stateVi ...

  5. android 监听布局改变,Android通过监听最外层布局的改变监听键盘的状态,软键盘的弹出和收起都会改变外层布局(前提是把Activity的mode设置成压缩);...

    最外层布局.addOnLayoutChangeListener(new OnLayoutChangeListener() { @Override public void onLayoutChange( ...

  6. android判断键盘是否弹出窗口,Android判断软键盘弹出并隐藏的简单完美解决方法(推荐)...

    最近项目中有一个编辑框,下面是个ListView.在触发编辑框弹出软键盘后,ListView还能滑动,并且ListView的item还能响应单击.这样的体验效果很不好.于是便想在滑动或单击item时判 ...

  7. IOS关于键盘的弹出和收起

    IOS关于键盘的弹出和收起 UITextField *text = [[UITextField alloc]init]; [text becomeFirstResponder]; 让键盘成为第一响应者 ...

  8. (小技巧)h5 手机键盘弹出收起的处理

    本文转载于思否社区专栏:随笔 作者:hzzly 前言:前段时间也是应项目的需求开始了 h5 移动端的折腾之旅,在目前中台的基础上扩展了两个 ToC 移动端项目,下面就是在 h5 移动端表单页面键盘弹出 ...

  9. Android之软键盘自动弹出和关闭

    一:软键盘自动弹出. private EditText top_middle;//输入框//-------------------------------------弹出软键盘------------ ...

最新文章

  1. CentOS下Docker 安装
  2. mysql 分页优化
  3. numpy delete
  4. nRF52 SAADC 直接操作寄存器
  5. javascript 迁移 typescript 实践
  6. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-7主节点CM安装子节点Agent配置...
  7. 字符输入流_Reader类FileReader类介绍
  8. git clone 某次提交前代码_git提交代码常用命令
  9. 分析Cocos2d-x横版ACT手游源 1、登录
  10. 金橙子dll使用说明
  11. js回调函数使用方法
  12. 什么是金融衍生品工具?
  13. 单身狗福音:钢铁直男也可以用AI歌曲俘获女友芳心!
  14. AVD模拟器一直处于开机状态打不开的解决办法
  15. 【复杂网络建模】——Python可视化重要节点识别(PageRank算法)
  16. Introducing the Universal CRT
  17. 跟我学c++高级篇——模板元编程之十一鸭子类型
  18. (面经总结)一篇文章带你整理面试过程中关于OSI 七层模型的相关知识
  19. slf4j日志的使用和配置
  20. android 4.2 webview,java-Android(4.4)WebView第二次加载时不显示ifra...

热门文章

  1. HashMap是什么
  2. 所有博客中所用到的软件包下载及相关文档可供参考
  3. java jodatime明天_使用Joda-Time优雅的处理日期时间
  4. 【转载】尼康D90购机注意事项
  5. Python 导出手机通讯录文件 VCF 文件中的手机号码
  6. 基于I.MX6UL平台的WIFI模块AP6214A 驱动移植
  7. tinymce 去掉POWERED BY TINY
  8. 【信息系统项目管理师学习笔记】10大管理|47个过程组:项目整体管理|指导与管理项目执行
  9. 个人永久性免费-Excel催化剂功能第84波-批量提取OUTLOOK邮件附件
  10. 虚假新闻检测,来自美团NLP团队方案