Android悬浮球软键盘避让功能实现

2017-04-10  本文已影响0人  莫萧涵

 最近公司项目需要写一个悬浮球,其中有个功能是键盘避让想了很久(踩了很多坑)- -!,记录下来,供大家参考。

首先网上的一些实现并不管用。

比如监听布局高度的变化,只能在应用内实现,全局并不能监听的到。

还有的是使用Notifacation监听输入法变化来实现,这个方法要求有点苛刻,要求手机必须安装俩个以上的输入法。(而且在原生系统貌似也没啥用)

Android也没有提供特定的API监听软键盘弹出关闭。

由于是公司自己做Rom,所以可以从源码层级考虑,修改Framework相关代码来实现,撸了一遍输入法相关的源码。发现InputmethodManagerService中有两个方法showSoftInput 和hideSoftInput 于是打开Log试了一下,发现可以在这两个方法中监听键盘打开和关闭。发两个广播就可以了。

接收到广播,在项目中接收广播,修改悬浮球位置即可。

上一篇下一篇

猜你喜欢

热点阅读