Android动态获取软键盘的高度,监听软键盘显示或者则隐藏。
做Android开发很多年了,写博客写的很少,主要是不知道写什么,也不知道大家爱看什么?在不知道大家的爱好之前,我就写少量项目里面比较常用的需求。假如大家在看的过程当中有任何不懂的可以提出来,我会逐个的给大家答复,也希望广大网友们参加进来,我们一起在安卓的开发海洋里面行驶。
今天我要跟大家分享的是安卓开发当中怎样动态获取软键盘的高度、软键盘能否打开?以及关闭的监听,我相信这个问题在做安卓开发比较常见的一个需求了,比方聊天系统当客户需要跟另外一个客户沟通的时候,需要打开聊天窗口进行文字输入,假如默认什么都不做的时候,打开输入法的那一瞬间界面会闪烁,主要起因是由于软键盘弹出的高度跟当前聊天界面的高度不一致导致的闪烁。还有表情跟输入法之间来回切换的时候,都会引起高度不一致闪烁。假如我们知道软键盘什么时候打开?什么时候关闭,和软键盘的高度,我们即可以在软键盘打开的时候动态设置一下表情的高度跟输入法的高度一致就不会有闪烁问题了。
上面只是一个常见的需求,还有少量会根据软键盘的打开或者则关闭来做少量隐藏或者则显示布局的需求,这里就不逐个列举了,接下来我就说说怎样获取高度、能否显示隐藏的方法。
第一个需要详情的ViewTreeObserver.OnGlobalLayoutListener
ViewTreeObserver 是一个注册监听视图树的观察者(observer),会监听视图树发生全局变化时发出的通知。这个全局事件包括整个树的布局,从绘画过程开始,触摸模式的改变等等。

当前窗口布局发生改变的时候就会回调「onGlobalLayout」方法。软键盘打开或者则关闭都会影响当前布局的高度,所以我们就监听当前窗口的布局发生改变来做高度判断,从而就知道了键盘的打开或者则关闭的需求。
「getWindowVisibleDisplayFrame」方法详情
该方法获取当前窗口布局整体可见显示大小,有了这个方法就能够知道控件的显示位置大小。

核心的代码就是这几句,直接上代码太乱,就上的图片了。接下来使用就很简单了,如下图:

这个需求基本就完事了,大家可一个测试一下,基本没有问题。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Android动态获取软键盘的高度,监听软键盘显示或者则隐藏。