Android 使用libgdx在Nexus设备上全屏显示

Android 使用libgdx在Nexus设备上全屏显示,android,libgdx,Android,Libgdx,有人知道如何使用libgdx全屏显示,而Nexus等设备上的虚拟主控键按钮也不可见吗?libgdx默认情况下通过AndroidApplicationConfiguration#hideStatusBar为您执行此操作。但是,您仍然可以设置为全屏 在android游戏项目的主要活动类中: public class MainActivity extends AndroidApplication { @Override public void onCreate(Bundle saved

有人知道如何使用
libgdx
全屏显示,而Nexus等设备上的虚拟主控键按钮也不可见吗?

libgdx默认情况下通过AndroidApplicationConfiguration#hideStatusBar为您执行此操作。但是,您仍然可以设置为全屏

在android游戏项目的主要活动类中:

public class MainActivity extends AndroidApplication {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        //cfg.hideStatusBar = true; //set to true by default


if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_VISIBLE);
getWindow().getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
}
            initialize(new MainClass(), cfg);
        }
    }
我意识到有一个bug,状态栏上的按钮在从锁定屏幕恢复后变得可见。解决方法是使用处理程序侦听(
setOnSystemMivibilityChangeListener
)系统UI可见性更改,然后在UI变为可见时重新隐藏该UI,或者在隐藏之前显示状态栏,如上文所述

另外,视图。状态栏隐藏(API v11)重命名为视图。系统界面标志低剖面(API v14),将虚拟导航按钮变成点。但是,两者都映射到相同的常量0x1。此外,一旦再次触摸屏幕,按钮将变为可见


如果您想完全删除状态栏,请使用
View.SYSTEM\u UI\u FLAG\u HIDE\u NAVIGATION
(API v14)和
Build.VERSION\u CODES.ICE\u SANDWICH

,以防有人发现这一点,就像我在寻找您可以使用的简单修复程序时所做的那样

config.useImmersiveMode = true;
在4.4及更高版本的
AndroidApplicationConfiguration
对象上,除了状态栏(默认情况下是隐藏的)之外,还隐藏软键


更新:该行属于
android/src/YOUR/PACKAGE/PATH/android/AndroidLauncher.java
您应该做的是在
onResume()中设置系统Ui可见性


尝试了许多方法,但只有以下代码对我成功:

...

      AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = false;
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        View decorView = getWindow().getDecorView();


     decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                   | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                   | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                                   | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                                   | View.SYSTEM_UI_FLAG_FULLSCREEN
                                   | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);


     initialize(new Soldiers(), cfg);

这是MainActivity.java的一部分,可能也应该在
onResume()上执行

很酷,当我有机会的时候我会试试看在上帝的份上什么文件?@MilanG
android/src/YOUR/PACKAGE/PATH/android/AndroidLauncher.java
添加到答案中以提高可见性。
...

      AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
        cfg.useGL20 = false;
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        View decorView = getWindow().getDecorView();


     decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                                   | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                   | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                                   | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                                   | View.SYSTEM_UI_FLAG_FULLSCREEN
                                   | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);


     initialize(new Soldiers(), cfg);