安卓软键盘弹出高度只计算了底部导航栏的高度

手机:三星S8
描述:图1为输入框没有焦点的情况,底部的导航栏是隐藏的(没设置沉浸模式,它的导航栏可以主动设置隐藏和显示);图2为输入框获得焦点的情况,在弹出软键盘前底部导航栏先自动弹出来了(弹出软键盘有一点点的延迟),结果游戏界面只是顶上去了底部导航栏的高度,其他没有弹出底部导航栏的手机或者是沉浸模式下(不会弹出导航栏)顶上去的是键盘的高度的。


图3为安卓工程的ResizeLayout.java里面的doLayout方法,输出日志正常的宽高为10802220,弹出键盘时为10802076,只是提升了144个像素高度。请问这种情况该如何处理?

我是参考这篇文章的,https://blog.csdn.net/sinat_31311947/article/details/53914000 。在Cocos2dxActivity.java 中添加,将键盘的高度告诉C++代码,C++把层或场景上移