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);
}