用 values 的方法行不通,因为虚拟按键 也是算在屏幕里的
软键盘显示的原理
软键盘的本质是什么?软键盘其实是一个Dialog!
InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。
所以,values怎么能区分虚拟按键呢?换个思路
将Activity的属性设置一下不行吗:
例如:
还是我没明白你的意思?