需要做自适应,如何获取手机(安卓)屏幕顶部的状态栏高度?

版本:2.1.0

我现在需要做屏幕的自适应,而且屏幕需要显示顶部的状态栏与底部的导航栏(虚拟键),我通过修改Android源码已经将这俩都显示出来了(不知道是不是走了弯路),我现在使用的cc.winSize来获取屏幕的高度,这个值测试后发现好像并没有减去状态栏的高度,而我现在就是需要得到手机屏幕高度减去状态栏和导航栏后的高度后的高度,请问cocos creator里面是不是有对应的api能直接使用呢? 如果没有,我应该在Android的哪些文件里面去找这个值呢? 我已经搜遍了搜索引擎 并且请教过好几个交流群,都没有啥结果。。请各位不吝赐教。

状态栏高度,只能用Android的api去获取啊,然后把值交给js····

额。我理解的是在项目构建之后,会生成对应的Android代码,然后自己再在这个Android代码上进行一些修改。

你说的用Android的api去获取然后把值交给js,这个大概是个什么流程啊?我没这么用过,所以不是很懂。

是这样的
就是你自己写java代码

那这样的话,我那些在构建之前用js写的自适应的代码,也得在Android代码里面重新用java再重写一遍是吗?

另外构建后,我在cocos里面编辑的界面与写的js代码。对应生成的是哪些文件啊? 我之前也觉得可能只有改java代码,但是找了一圈,不知道修改哪个文件。。Android不是很熟。。

不懂你在说什么······
ccc写UI的时候,你肯定会把状态栏预留出来啊,实际上,所有的状态栏都差不多高,你也没必要非要拿到高度啊

如果你非想拿到高度,然后去做UI适配,也可以啊~
不需要改动你构建后的代码

我也是考虑如果能够获取到手机状态栏的高度,这样比预留状态栏高度效果会更好一点,兼容性也会更好一点吧。 我也没去统计过各个型号的手机状态栏高度是不是差不多的。如果都差不多或者其他方式解决难度太大, 那我应该也会选择预留这种方式了。。

:joy:目前的情况不是需要在Android代码里面才能拿到状态栏高度吗?我有点不太明白在这个阶段拿到高度值后,不改动构建后代码,如何还能自适应啊。。

你在as里加个断点,跟一下ccc在安卓上的运行流程,就知道了

嗯嗯。 我还是先试试预留的那个方法吧。 对java不太熟,临时去学去跟流程可能时间来不及。非常感谢你这么耐心的回答,谢谢!!:+1:

只需要百度下就行了~