View.SYSTEM_UI_FLAG_FULLSCREEN无法正常工作

问题描述 投票:0回答:1

我在Android开发领域还很陌生。在我的应用程序中,我使用的类是我所有活动的一部分。它允许我定义所有应用程序都将处于全屏模式。

这是此类的代码:

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

全屏模式非常理想,除非在非常特殊的情况下。当我进入应用程序时,我按导航栏的“主页”按钮,然后单击导航栏上的“应用程序菜单”按钮以恢复该应用程序(仅像这样)。仍处于打开状态的应用程序)并恢复该应用程序,通知栏在不应该出现的时候再次出现(只有它,导航栏永远不会有任何问题)...但是当我更改活动时它会消失。

这是一个更好理解的视频:https://drive.google.com/open?id=1FPoADemhLcPfxnohQdfYOpb6wkxQTx5q

我也尝试添加

| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LOW_PROFILE

但是它并没有改变任何东西(除了我真的不知道这两个视图的用途是什么...

我真的需要帮助,谢谢!

android android-fullscreen
1个回答
0
投票

您可以通过转到每个活动来删除状态栏,并在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);
}
© www.soinside.com 2019 - 2024. All rights reserved.