热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android监听软键盘状态的实例详解

这篇文章主要介绍了Android监听软键盘状态的实例详解的相关资料,希望通过本文能掌握这样的知识,需要的朋友可以参考下

Android 监听软键盘状态的实例详解

近日遇到要检测软键盘是否显示或隐藏的问题,搜了一下网上,最后找到一个很简单的,记录一下。

activityRoot是activity的根view,就是xml里面的第一个view,给它设置一个id.

final View activityRootView = findViewById(R.id.activityRoot); 
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
  @Override 
  public void onGlobalLayout() { 
    int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight(); 
    if (heightDiff > 100) { // 如果高度差超过100像素,就很有可能是有软键盘... 
      ... do something here 
    } 
   } 
}); 

但是这个依赖于Android:windowSoftInputMode="adjustResize",

如果是adjustPan,Activity高度不变就没用了。然后终于给我找到一个界面高度不变也能用的办法,这个办法不能监听只能主动去查询,不过正好我也只需要这样就行了

InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE);  
if(imm.hideSoftInputFromWindow(editText.getWindowToken(), 0)) 
{ 
   imm.showSoftInput(editText,0); 
//软键盘已弹出 
} 
else 
{ 
  //软键盘未弹出 
} 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


推荐阅读
  • 前期部署1.JDK安装,配置PATH2.下载spark-1.6.1-bin-hadoop2.6.tgz,并上传到服务器解压3.在 usr 下创建软链接到目标文件夹4.修改配置文件, ... [详细]
  • 作为第一个正式项目,感触颇多,系统刚做完没多久,写点笔记记录下来吧。本系统主要功能是进行数据统计,比如统计学院的进馆次数,平均次数,进馆排行,图书馆年报等等在接到这个商用项目时,听 ... [详细]
  • DW的div布局
    如果你想尝试一下不用表格来排版网页,而是用CSS来排版你的网页,也就是常听的用DIV来编排你的网页结构,又或者说你想学习网页标准设计,再或者说你的上司要你改变传统的表格排版方式,提 ... [详细]
  • **实验3.4*使用上题的矩形类,编程统计若干块土地的相关信息*由用户输入每块儿土地的长与宽,程序将相关结果输出**importjava.util.*;publicclassa ... [详细]
  • #B.BalancedBreakdown#####1.题目大意:给定一个n,从n中不断分离回文数(翻转后大小相同的数字)问最少需要多少步,输出最少步数以及一种方案(方案不唯一)## ... [详细]
  • 深入研究虚幻4反射系统实现原理(一)
    上一篇翻译的文章里面提到了UE4反射系统的基本原理与应用,这次我们通过代码来深入研究一下UE4的反射系统,因为反射系统在UE4中牵扯的东西较多,所以我打算分几篇文章分析。我这里假定 ... [详细]
  • 水陆草木之花,可爱者甚蕃。晋陶渊明独爱菊。自李唐来,世人盛爱牡丹。予独爱莲之出淤泥而不染,濯清涟而不妖,中通外直,不蔓不枝,香远益清,亭亭净植,可远观而不可亵玩焉。予谓菊,花之隐逸 ... [详细]
  • [191]python3.6下scrapy框架的安装
    首先考虑使用最简单的方法安装pipinstallscrapy命令安装,提示FailedbuildingwheelforTwistedMicrosoftVisual ... [详细]
  • 今天用css做了一个QQ登录页面
    今天写一些简单的页面 ... [详细]
  • mac用于开发使用时间长硬盘会越来越小,速度越来越慢的,亦是花了几分钟研究怎么清理系统的缓存,方法:1,到https:www.omnigroup.commore安装OmniDisk ... [详细]
  • 点击elementui表格中的图标,上方显示具体的文字描述
     <template><el-ta ... [详细]
  • 又给自己挖了一个坑跳进去。KafkaManager使用单例模型获取到一个producer,然而自己代码里用的时候加了一个using然后自己在做测试的时候,for循环加10条数据发送 ... [详细]
  • 设计模式(一)—— 策略模式
    简述:策略模式的适用的目标是多子类和单一父类的情形。父类中放的是很多子类共用的代码段,对于不同子类特殊的代码段交给子类进行编写。但如果两个或两个以上的子类需要共同的代码段时,不能将 ... [详细]
  • 大学没好好读书,那会没怎么明白冒泡排序是这么回事早上睡到九点多起来,就在房间看书、听歌,下午吃完饭做了下冒泡排序,现在把代码贡献如下:其实还可以改良的,节省时间空间,有时 ... [详细]
  • Emgu 学习之HelloWorld
    安装和配置系统Win10,VS2013,下载Emgu安装包libemgucv-windesktop-3.4.3.3016安装到了E:\OpenCV\emgucv-windeskto ... [详细]
author-avatar
QK丫头419QJ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有