cocosCreator2.4 Android 输入法遮挡

这里是 调用显示系统的输入法,然后在 Cocos2dxEditBox.java 创建UI,用于处理输入,这里可以看到会ui 会被系统的输入法遮挡,无法点击,是因为 计算ui位置时没有算上刘海区域,需要处理一下:

java 复制代码
        private int getTopSpecialHeight(Context context) {
            int result = 0;
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
                // 执行安全区域检测
                WindowInsets windowInsets = getRootView().getRootWindowInsets();
                if (windowInsets != null) {
                    DisplayCutout displayCutout = windowInsets.getDisplayCutout();
                    if (displayCutout != null) {
                        return displayCutout.getSafeInsetTop();
                    }
                }
            }
            return result;
        }

然后修改 Cocos2dxEditText.this.setTopMargin(r.bottom); 为:

java 复制代码
        int delta = getTopSpecialHeight(getContext());
        Cocos2dxEditText.this.setTopMargin(r.bottom-delta);

其它网上还有一个解决方案:CocosCreator安卓原生平台手机输入法遮挡文本输入框

这个方案是将游戏整个页面上抬,但是我这边测试有时上抬刘海高度,有时上台键盘高度那么高。而我们有些玩法的输入框在游戏顶部区域就导致完全看不到输入的是什么内容。

相关推荐
-指短琴长-1 小时前
MySQL快速入门——基本查询(下)
android·mysql·adb
stevenzqzq3 小时前
android lambda回调
android
林北北的霸霸5 小时前
django初识与安装
android·mysql·adb
Java 码农6 小时前
MySQL EXPLAIN 详解与优化指南
android·mysql·adb
stevenzqzq11 小时前
Android Hilt 入门教程_传统写法和Hilt写法的比较
android
wuwu_q11 小时前
用通俗易懂方式,详细讲讲 Kotlin Flow 中的 map 操作符
android·开发语言·kotlin
_李小白12 小时前
【Android FrameWork】第五天:init加载RC文件
android
2501_9160074712 小时前
手机使用过的痕迹能查到吗?完整查询指南与步骤
android·ios·智能手机·小程序·uni-app·iphone·webview
黄毛火烧雪下13 小时前
React Native (RN)项目在web、Android和IOS上运行
android·前端·react native
下位子13 小时前
『OpenGL学习滤镜相机』- Day7: FBO(帧缓冲对象)
android·opengl