沉浸式模式Android Studio

我想让我正在以沉浸式模式运行的游戏,但android studio无法识别标记沉浸式模式,因为我将最小API设置为16,而且我知道沉浸式模式仅在后来的KitKat中添加。 有没有办法让我的应用程序在沉浸式模式下运行而不更改我的最低API?

是的,这是可能的,但当然这种沉浸式模式仅适用于具有KitKat及更高版本的设备。 事实上,根据你的话,你甚至不能得到这样的旗帜,这就是你的一面奇怪:

View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; 

(或其中一部分)。 如果是这样的话,那么看起来你的compileSdkVersion比它应该的更低。 一开始我建议你将compileSdkVersion更新为22(并且还将targetSdkVersion也更新为22)(你将在build.gradle中找到这两件事)

如果你这样做,并且你想在那些你想要使用沉浸式模式添加条件的地方使用这些标志,那将是这样的:

 if (Build.VERSION.SDK_INT >= VERSION_CODES.KITKAT) { int UI_OPTIONS = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION; getWindow().getDecorView().setSystemUiVisibility(UI_OPTIONS); } 

那么它不应该在旧操作系统上搞乱。

更新 :第二段代码已更新)

只需在活动类中粘贴此function即可完成

  @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { 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); } }