cocos3.16引擎问题,求关注 EditBox 在安卓手机上输入的时候不显示,确定后才显示

查到相似的问题,但是并没有解决:https://github.com/cocos2d/cocos2d-x/pull/17802

3.15版本的没有问题,3.16版本的EditBox 在安卓上点击后,字符消失,输入字也不会显示,只有等到键盘点击完成后才会显示··········

@子龙山人
能看下么

居然@了子龙。。。
:joy:

那我应该@谁···

求回复········

什么机型? 尝试一下用 cpp-tests 测试例,看能否正确输入

如果手边有多个 Android 机型的话,可以都测一下,最近 3.17 内部测试,没发现这个问题

local imgBg = ccui.Helper:seekWidgetByName(self.rooWidgetSeat, “imgBg”)
local sp = cc.Sprite:create(“GoldenFlowerRes/gf_bg6.png”)
self.imgProgress = cc.ProgressTimer:create(sp);
self.imgProgress:setType( 0 );
self.imgProgress:setMidpoint( cc.p(0.5,0.5) );
self.imgProgress:setBarChangeRate( cc.p( 0 ,1 ) );
self.imgProgress:setPercentage(100);
self.imgProgress:setReverseDirection(true);
imgBg:addChild( self.imgProgress );
self.imgProgress:setPosition( cc.p( imgBg:getContentSize().width / 2,imgBg:getContentSize().height / 2 ) );
self.imgProgress:runAction(cc.ProgressTo:create(50, 0));
看到你的回复
突然想到一个问题
我这样写会有点问题
有一小段会显示不正确
我也不知道咋描述
版本是3.6
最新的3.16没试过

大佬,要不要考虑,把这个丰富到 lua-tests 中,说明期待效果,异常效果。包含在测试例中的功能,每次版本发布前,都能测试到

我刚试了3.16
已经修复了。。。
:joy:

如果以后有其他的我在提test吧。、。。
:joy:

嗯,经过多次测试,发现时设置了字体就会有这个问题,我试过两个字体,一个有问题,一个没问题·········
难道是我这个字体有问题?

嗯,as的log有一句 Warning! You can’t change Android Hint fontName and fontSize
只要设置了字体名字或大小,就会出现上述情况····

哪一个字体出现问题了,哪个没问题呢,是否方便提测试例,or 粘贴一下代码

local bgInput = helper.seekNodeByName(self.nodeCCS, "input_bg"); self.editName = ccui.EditBox:create(cc.size(255,43),"common/scale_bg.png") self.editName:addTo(bgInput) self.editName:setPosition(302/2,43/2) self.editName:setPlaceHolder("2-8个字符") self.editName:setMaxLength(8) self.editName:setInputMode(cc.EDITBOX_INPUT_MODE_SINGLELINE); self.editName:setInputFlag(cc.EDITBOX_INPUT_FLAG_SENSITIVE); --self.editName:setFont("fonts/DroidSansFallback.ttf",28) --self.editName:setFontName("fonts/DroidSansFallback.ttf") --self.editName:setFontSize(28) self.editName:setFontColor(cc.c3b(112,38,15)) self.editName:setPlaceholderFontColor(cc.c3b(169,89,35)) self.editName:setPlaceholderFontSize(24) --self.editName:registerScriptEditBoxHandler(handler(self,self.editBoxTextEventHandle));

这是代码
DroidSansFallback.zip (1.4 MB)

这是有问题的字体,如果不设置的话就没有问题
不知道是我代码不对还是怎么回事

我想问下···这个问题是什么情况······
我现在不设置字体了,发现了另外一种情况,代码如下:


就这样,小米手机,vivo手机出现的问题是,第一安装时,点击输入框,没反应,也没有弹出系统输入框
log如下:

退出游戏,重启后,再点击输入框就正常了·······

这个也同样的问题·······

特定手机的问题不好查,可能 EditBox 在实现的时候通过 JNI 和当时的 Android 版本,测试了一些机型,效果没问题。但是随着 Android SDK 升级变动,各厂商又进行各自的 “优化”,就会出现一些行为的不一.

这个时候的解决,一般是通过调整 JNI 相关的 Java 侧代码。对于 EditBox 就是 Cocos2dxEditBox.javaCocos2dxEditBoxHelper.java,你可以参考 GitHub 类似问题的解决,试着找找原因。

强烈建议提测试例,到 cpp-tests 或者 js-tests,同时在 GitHub 提 Issue,说明哪个机型可以,哪个机型不可以, 包含 Android 版本的信息, 这样其它开发者可以帮助解决,定位问题的成本比较低

我想我知道是什么原因了········我做了几个测试······
最终发现,只要把editbox放到ccs的节点上,就会出现上述几个问题
放到其他的节点上就没问题,和3.15还是3.16没关系···········

1赞

哥们 最后你把editbox 放那里了?

不要放到ccs导出的东西里边就行了········

虽然过去了很多年,但可以结贴了。用3.17.2的Cocos2dxEditBoxHelper,Cocos2dxEditBox替换老版本的就好了。把解决方案放在这,给后来人填坑

1赞