android中软键盘挡住界面的问题的一些解决方案

操作系统:android10
creator版本:2.3.3
测试机型:google google pxl,huawei
思路:
1.在js脚本里获取点击的editbox的世界坐标,在把世界坐标转为手机实际的坐标
2.在android端动态调整GLSurfaceView的Y坐标
3.隐藏掉那个自带的输入框

js端代码:

cc.EditBox.prototype._onTouchBegan=function(event){
            let touch=event.touch
            let node=event.target
            let upLoadY=touch.getLocationY()
            let nodePos=node.convertToNodeSpaceAR(touch.getLocation())
            upLoadY-=nodePos.y+node.height/2
`           if(cc.sys.os==cc.sys.OS_ANDROID){
                   jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "upLoadEditBoxY", "(Ljava/lang/String;)V",upLoadY*cc.view.getScaleY())                                
            }else{

            }
}

android端代码

Cocos2dxActivity.java
添加接收js端传过来的变量
public static float mEditBoxY=0;

大佬 js部分代码是写在哪里的 1

你的游戏的第一个脚本文件,或者直接继承EditBox 重写这个组件就可以啦