关于弹出和隐藏输入法

最近做的手机遥控器APP,需要在机顶盒端弹出输入法时,在该APP内时,手机也能够弹出输入法,达到同步输入的效果,当然这个是如何实现的,是我师父修改了Android的framework层的InputMethodManager实现的,是用广播实现的,暂时还没有时间去看下他修改的源码,完成这个APP之后一定要去好好看一下,好了回归正题,输入法的弹出和隐藏,主要的就是借助Android提供的InputMethodManager类来实现的,在一开始的时候看了一下API各种尝试就是不能达到,输入法自动弹出,在关闭当前界面时,输入法自动关闭,满足了自动弹出,就满足不了自动隐藏,的确有些崩溃,再经历了自己的各种尝试之后我就上博客上来学习了,看到了ccpat这个博主写的一篇《android手动显示和隐藏输入法》结合API的对InputMethodManager类的一些参数和方法的解释,总算是给整明白了,还有,这位大神对这个解释的太清楚了,有兴趣的可以去看看,我的总结基本上也是照抄他的,哈哈哈哈。
这里是大神写的原文地址
我就直接捡结果说吧,首先InputMethodManager怎么使用

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);

然后性价比最高的弹出软件键盘的方法如下。

public void showSoftInput() {InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);if (imm != null) {// view就是你设置的EditText或者其他控件view.requestFocus();imm.showSoftInput(view, 0);}
}

如果你的布局中没有任何控件,还可以采用如下方式弹出软键盘

imm.toggleSoftInput(0, 0);

这个方法的原型是下面这样的
public void toggleSoftInput(int showFlags, int hideFlags);
就是软键盘是隐藏的时候弹出,是弹出的时候隐藏。
当然在API上是有好几个参数弹出软键盘的,但是也就是showSoftInput这个方法的第二个参数, 有SHOW_IMPLICIT, SHOW_FORCED,0,当然0绝对是最直接并且约束条件最少的一个标志。在我说的那篇博客中那位大神画了一个表格很清晰的展现了几种标志在显示和隐藏软键盘时差异,他写的的确是太好了,所以我写的基本只能照搬了。结合我在实际使用时遇到的坑吧,不过其实试错也是一个加深记忆的过程,所以大家如果能够自己先好好摸索是最好的,直接看博客的话,毕竟是别人咀嚼过的东西。
然后是隐藏软键盘的最佳方法:

//隐藏键盘方法原型
public boolean hideSoftInputFromWindow(IBinder windowToken, int flags);
public void showSoftInput() {InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);if (imm != null) {// view就是你设置的EditText或者其他控件view.hideSoftInputFromWindow(view.getWindowToken(),0);}
}

  最后在所有使用弹出软键盘的方法的时候一定要等待界面绘制完成,在所有使用弹出软键盘的方法的时候一定要等待界面绘制完成,反正我就是被这个给坑惨了,说到底还是源码看的少了,具体办法可以在前文创建软键盘的方法放在一个延时器中执行,延时个50ms应该足够了。
第二篇博客,第一次用MarkDown写博客,感觉挺爽的。

关于弹出和隐藏输入法相关推荐

  1. android inputmethodmanager 不自动弹出,Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听...

    1.首先设置软键盘的弹出模式,设置在初始化View的前面 @Override protected void onCreate(Bundle savedInstanceState) { this.req ...

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

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

  3. Android判断软键盘弹出并隐藏的简单完美解决方案

    Android判断软键盘弹出并隐藏的简单完美解决方案 参考文章: (1)Android判断软键盘弹出并隐藏的简单完美解决方案 (2)https://www.cnblogs.com/thare1307/ ...

  4. android 键盘隐藏监听,安卓监听软键盘弹出与隐藏的两种方法

    需求: 现在有一个需求是点击一行文本框,弹出一个之前隐藏的输入框,输入完成后按返回键或者其他的东西隐藏键盘和输入框,将输入框的内容填充到文本框中. 实现: 拿到这个需求的第一反应就是写一个监听来监听键 ...

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

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

  6. android 键盘弹出 监听,奇技淫巧之-Android监听键盘弹出与隐藏事件

    CaptainAndroid.png 相信看到这个标题,大家都会潜意识觉得:Activity中没有可以复写的方法么?或者说,没有什么listener可以让我们使用么? 抱歉,真的没有,我们潜意识都是以 ...

  7. 仿微信软键盘弹出与隐藏

    仿微信软键盘弹出与隐藏,效果图如下: 实现输入框弹出,软键盘弹出,获取焦点,否则失去焦点. 首先在 AndroidManifest 文件的对应 Activity 中加入下面代码: android:wi ...

  8. Swift--监听iPhone键盘弹出及隐藏事件

    开发需求:对键盘弹出及隐藏事件进行监听 需要通过NotificationCenter对键盘事件进行监听 //键盘即将弹出NotificationCenter.default.addObserver(s ...

  9. 微信小程序——弹出并隐藏键盘(带有输入框,可编辑)

    点击按钮唤起键盘并且键盘上带有输入框,点击发送或者空白处可将输入的内容发送到指定的顶部输入框,不理解的可以私聊本人哦!!! 1.编辑好静态文件 .HTML文件 <!-- 点击需要编辑的输入框,& ...

最新文章

  1. Sublime Text 快捷键
  2. 【机器学习】业界干货 | 图解自监督学习,从入门到专家必读的九篇论文
  3. Linux分支代码必须公开吗,linux – 当拉出不同的分支时,让“git pull”请求确认...
  4. [COGS746] [网络流24题] 骑士共存
  5. PE文件结构详解(二)可执行文件头
  6. vue.js中的v-model指令的深刻理解
  7. 微软AirSim,一个无人机和机器人的模拟器
  8. python序列数据类型_Python 数据类型 之 序列类型
  9. ios蓝牙开发(三)app作为外设被连接的实现
  10. GolVe向量化做文本分类
  11. paip.输入法编程---输入法ATIaN历史记录
  12. Kubernetes基础篇:主要特性、基本概念与总体架构
  13. h5前端 调用手机通讯录
  14. 你连如何高效学习都不会,怎么提升编程水平呢!
  15. Java实现支付宝网页支付
  16. Python:1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
  17. 解决markdown-it-prism未能正确加载Languages的BUG
  18. linux学习笔记之lvm管理
  19. 基于C语言的9*9数独生成器(回溯法)
  20. nginx限流防刷方案

热门文章

  1. 2022年忍者必须死3到达无双纪念
  2. linux下执行.sh文件的方法和语法
  3. 十分钟开发出神经网络五子棋
  4. 曝NV或将推出新一代Titan显卡:48G显存 功率高达900W
  5. Exploratory Social Network Analysis with Pajek(第三版)8
  6. java文字版格斗游戏。
  7. Android中指南针的实现
  8. word怎么恢复默认样式
  9. mysql ddl过程,MySQL基础教程3-DDL(创建表)
  10. 2017年1月手机分析报告