【Android】键盘的展开和收起

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

其大致方法如下:

1 public void hide_keyboard_from(Context context, View view) {
2         InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
3         inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
4     }
5
6 public void show_keyboard_from(Context context, View view) {
7         InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
8         inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
9     }

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

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 SHOW_FORCED

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;

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

时间: 2024-10-25 18:37:40

【Android】键盘的展开和收起的相关文章

移动端判断键盘弹出和收起

根据键盘的展开和收起我们可以判断页面的可视区域的高度来操作,具体代码是这样的 const originHeight = document.documentElement.clientHeight || document.body.clientHeight; window.addEventListener('resize', () => { const resizeHeight = document.documentElement.clientHeight || document.body.cli

Android Studio中如何设置代码展开或收起

http://www.androidren.com/index.php?qa=310&qa_1=android-studio中如何设置代码展开或收起 Android Studio默认情况下有些代码或注释等是收起来的+.有些时候不符合个人习惯. 修改方法如下: 第一步.打开Preference. 第二步.找到Editor. 第三步.找到Code Folding,在右边面板就可以根据自己喜好修改配置.最后记得Apply和OK. 大概的如图所示:

Android 另类方法监听软键盘的弹出收起事件

http://www.cnblogs.com/csonezp/p/5065624.html 最近做的项目碰到个问题,a界面是fragment+recyclerview,b界面带个edittext,并且会自动获得焦点弹出软键盘.由a界面进入b界面,再结束b界面返回a界面,就会在a界面上留下一片和软键盘大小相同的灰色区域,具体原因搞了很久也不清楚.但是问题总是要解决的,我在a的fragment上折腾了半天,始终没什么用.然后就想着在b界面折腾折腾,关闭activity的时候先收起挼键盘,软键盘收起完

js 监听手机端键盘弹出和收起事件

//这里区分不同系统,可以参考之前的文档记录 https://www.cnblogs.com/wind-wang/p/10737110.html const ua = typeof window === 'object' ? window.navigator.userAgent : ''; let _isIOS = -1; let _isAndroid = -1; export function isIOS() { if (_isIOS === -1) { _isIOS = /iPhone|iP

div展开与收起(鼠标点击)

效果图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>展开与收起</title> <style type="text/css"> body{ margin: 0 auto; padding: 0; } #pn{ background: #e8e8e8; width: 6

Android键盘映射

对于按键事件,Android调用mDevices[i]->layoutMap->map进行映射.映射实际是由  KeyLayoutMap::map完成的,KeyLayoutMap类里读取配置文件qwerty.kl,由配置 文件 qwerty.kl 决定键值的映射关系.你可以通过修 改./development/emulator/keymaps/qwerty.kl来改变键值的映射关系. 具体可以参照Android\frameworks\base\libs\ui\KeyCharacterMap.c

MTK Android键盘输出增加按键码

Android键盘输出增加按键码 开发过程中免不得需要增加或减少按键码值,在android2.3系统事件处理部分,主要向上层提供统一的按键码(KeyCode),这个按键码是一个整数,在上层的JAVA程序中主要通过这个值来判断系统的实现.这里主要讲android事件的处理过程,需要经过两个转换步骤: Android键盘输出增加按键码 1.键扫描码ScanCode是由linux的Input驱动框架定义的整数类型,可参考input.h头文件 在步骤一中将其值转换成表示按键的字符串 键盘布局文件(*.k

菜单栏展开和收起效果(纯js)

2014年6月25日 15:36:29 需要关注的是: 1.用cookie保存用户当前点击的菜单项,不打扰后端代码 2.通过数学计算得到要显示和隐藏的div 3.点击事件是动态绑定到a标签上的,因此当dom加载完后,再执行js,也就是写在onload里 HTML如下: 1 <h3 class="titleH3" id="101">aaaa</h3> 2 <div class="subNav" id="1&q

内容的展开与收起效果

大幅广告的展开与收起: <html xmlns="http://www.w3.org/1999/xhtml"> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>展开与收起效果</title> <style> *{ margin: 0; padding: 0; }