我想使用Libgdx引擎创建游戏。默认情况下,它会创建一个全屏游戏而没有通知栏。
那么我可以创建带有通知栏的游戏吗?
由于我目前还没有发表评论的权限,所以我将其作为答案。基本上LiamJPeters所说的一切都有帮助,但是如果您最近使用了较新的libgdx夜间版本之一从头开始设置项目,则还会有一个"res/values/styles.xml"文件被引用在清单中。
除了LiamJPeters所写的所有内容外,我不得不在那里更改两个设置,以使其最终显示通知栏和窗口标题:
<resources>
<style name="GdxTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">false</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">false</item>
</style>
</resources>
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.hideStatusBar = false;
initialize(new MainClass(), cfg);
}
}
public class MainActivity extends AndroidApplication {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(initializeForView(new MainClass(), false));
setContentView(layout);
}
}
因此,对我而言,最终可行的代码如下:
Java部分 - 结合相对布局和hideStatusBar配置(感谢LiamJPeters)
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.hideStatusBar = false;
RelativeLayout layout = new RelativeLayout(this);
layout.addView(initializeForView(new MyAndroidApp(), config));
setContentView(layout);
}
同时,styles.xml部分需要将windowFullscreen更改为false(感谢Bernrd K.)
<resources>
<style name="GdxTheme" parent="android:Theme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowFullscreen">false</item>
</style>
</resources>