Android:
使用ImmersionBar:https://github.com/gyf-dev/ImmersionBar
在项目的build.gradle中添加依赖包
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
implementation fileTree(dir: "D:/CocosCreator/resources/cocos2d-x/cocos/platform/android/java/libs", include: ['*.jar'])
implementation project(':libcocos2dx')
implementation 'com.android.support:support-v4:24.1.1'
// 基础依赖包,必须要依赖
implementation 'com.gyf.immersionbar:immersionbar:3.0.0-beta05'
}
其他配置参照GitHub上的文档
1.修改AndroidManifest.xml的theme
android:theme="@android:style/Theme.Translucent.NoTitleBar"
2.注释Utils.java中hideVirtualButton函数的内容,可Cocos2dxActivity.java中的Utils.hideVirtualButton();跳转到文件中
public static void hideVirtualButton() {
// if (Build.VERSION.SDK_INT >= 19 &&
// null != Utils.sActivity) {
// // use reflection to remove dependence of API level
//
// Class viewClass = View.class;
// final int SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION");
// final int SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN");
// final int SYSTEM_UI_FLAG_HIDE_NAVIGATION = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_HIDE_NAVIGATION");
// final int SYSTEM_UI_FLAG_FULLSCREEN = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_FULLSCREEN");
// final int SYSTEM_UI_FLAG_IMMERSIVE_STICKY = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_IMMERSIVE_STICKY");
// final int SYSTEM_UI_FLAG_LAYOUT_STABLE = Cocos2dxReflectionHelper.<Integer>getConstantValue(viewClass, "SYSTEM_UI_FLAG_LAYOUT_STABLE");
//
// // getWindow().getDecorView().setSystemUiVisibility();
// final Object[] parameters = new Object[]{SYSTEM_UI_FLAG_LAYOUT_STABLE
// | SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
// | SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// | SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
// | SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
// | SYSTEM_UI_FLAG_IMMERSIVE_STICKY};
// Cocos2dxReflectionHelper.<Void>invokeInstanceMethod(Utils.sActivity.getWindow().getDecorView(),
// "setSystemUiVisibility",
// new Class[]{Integer.TYPE},
// parameters);
// }
}
4.在AppActivity.java文件的onCreate函数中增加下面的代码
ImmersionBar.with(this)
.keyboardEnable(true)
//.statusBarColor(R.color.colorPrimary)
.statusBarDarkFont(true)
.init();
IOS:
在RootViewController.mm的prefersStatusBarHidden函数中返回NO:
- (BOOL)prefersStatusBarHidden {
return NO;
}