请问大家发布到原生平台时,“加载中...”这种提示框怎么实现?

在微信和抖音小游戏的时候,“加载中…”这种提示框我都是用wx.showLoading来轻易实现的,对应到原生安卓,这个应该是用ProgressDialog来实现是吧?但安卓原生的那个ProgressDialog的样式是很难看的,所以以前我用android studio做原生开发时,都是继承ProgressDialog,然后自己实现一个比较美观的MyProgressDialog(就是和wx.showLoading那种差不多样式的灰色背景,比较美观的加载框)。

那么现在我想把cocos creator开发的微信小游戏发布到原生平台,wx.showLoading肯定是用不了了,难道必须像以前做安卓开发那样,自己再实现个MyProgressDialog?感觉很麻烦啊(又要自己定义类,又要自己弄xml文件,我都搞不清xml文件应该放哪里,难道自己在build\jsb-link\frameworks\runtime-src\proj.android-studio\res建个layout文件夹吗)。大家有什么更好的解决方法吗?或者cocos creator提供这种类似wx.showLoading的API了吗?

请多多指教,非常感谢!

用cocos自己实现

感谢回复,我也是觉得能在cocos creator里实现的东西,就尽量别用原生安卓实现,太麻烦了。

实在不愿意自己写了,请问哪里有比较好的这种插件吗?谢谢!

唉,仔细想想,不光是wx.showLoading,还有wx.showToast呢

wx.showToast用安卓原生的Toast.makeText似乎很简单也很美观,如果这样,Toast这种提示信息就直接使用原生,showLoading这种“”加载中…"的等待信息自己用cocos creator实现,又觉得都是信息提示类的弹框,代码不太统一了(也就是说Toast信息弹框是原生,Loading信息弹框是cocos creator)。

另外,我没啥经验,但我的理解是:尽量在cocos creator端实现提示框的好处是,如果你要往安卓和IOS都发布的话,就无需适配原生平台了。但如果提示框是调用安卓的Toast.makeText,虽然也很方便的实现了,但将来万一往IOS发布时,还是要改这部分的代码。

各位老师怎么看这个问题?

jsb了解一下,原生调用cocos里写好的方法。https://docs.cocos.com/creator/manual/zh/advanced-topics/java-reflection.html

感谢回复,我后来还是用cocos自己实现的,就是仿showLoading的样式,做一个全屏的窗口,窗口中央有个圆角小矩形,这个圆角小矩形里面弄个不停转圈的图标,图标下面写个“加载中…”(我觉得能在cocos实现的就尽量在cocos里实现,这样以后往原生安卓和IOS发布时,这部分就完全没必要再修改了),感觉也没必要用jsb什么的原生再调用cocos了,cocos里面需要显示加载中的时候,直接这个窗口的active=ture就可以了吧。。。
我cocos不熟,不知道怎样把上述这个窗口封装成控件(因为图标资源在resources里面,所以感觉不好单独封装起来)。如果能封装成控件,就更方便了。我的Toast的这种弹窗用的就是下面帖子里大佬自己封装的控件,这样很方便。这大佬用到的一些sprite资源,都是系统自带的,所以不用从resources加载,容易封装成单独的控件。

1赞