View.SYSTEM_UI_FLAG_FULLSCREEN 无法正常工作
View.SYSTEM_UI_FLAG_FULLSCREEN does not work properly
我是 Android 开发的新手。在我的应用程序中,我使用 class 作为我所有活动的一部分。它允许我定义我的所有应用程序都将处于全屏模式。
这是 class 的代码:
package com.retroverse.bataille_corse;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class FullScreenActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
}
全屏模式完美运行,除非在非常特殊的情况下。当我在我的应用程序中时,我按下导航栏的 "home" 按钮,然后当我想通过单击导航栏的 "app menu" 按钮(当你看到仍然打开的应用程序)并恢复应用程序时,通知栏在它不应该出现的时候重新出现(而且只有它,导航栏从来没有任何问题)......但是当我改变时它消失了activity.
这里有一个视频可以更好地理解:https://drive.google.com/open?id=1FPoADemhLcPfxnohQdfYOpb6wkxQTx5q
我也试过添加
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE
但它并没有改变任何东西(此外我真的不知道这两个视图是干什么用的)...
我真的需要帮助,谢谢!!
您可以通过转到每个 activity 并在您的 OnCreate 方法中进行设置来删除状态栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_layout);
}
我是 Android 开发的新手。在我的应用程序中,我使用 class 作为我所有活动的一部分。它允许我定义我的所有应用程序都将处于全屏模式。
这是 class 的代码:
package com.retroverse.bataille_corse;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class FullScreenActivity extends AppCompatActivity {
@Override
protected void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
| View.SYSTEM_UI_FLAG_FULLSCREEN);
}
}
}
全屏模式完美运行,除非在非常特殊的情况下。当我在我的应用程序中时,我按下导航栏的 "home" 按钮,然后当我想通过单击导航栏的 "app menu" 按钮(当你看到仍然打开的应用程序)并恢复应用程序时,通知栏在它不应该出现的时候重新出现(而且只有它,导航栏从来没有任何问题)......但是当我改变时它消失了activity.
这里有一个视频可以更好地理解:https://drive.google.com/open?id=1FPoADemhLcPfxnohQdfYOpb6wkxQTx5q
我也试过添加
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE
但它并没有改变任何东西(此外我真的不知道这两个视图是干什么用的)...
我真的需要帮助,谢谢!!
您可以通过转到每个 activity 并在您的 OnCreate 方法中进行设置来删除状态栏:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.your_layout);
}