隐藏状态栏直到退出

时间:2016-07-08 19:40:01

标签: android statusbar

我设法在启动时隐藏状态栏。但每当我触摸控件状态栏出现。为了解决这个问题,我尝试使用此代码在每次触摸时隐藏它,但它首先显示然后隐藏。这个循环永远持续下去。

private View mContentView;
private View mControlsView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_testgame);

    mControlsView = findViewById(R.id.fullscreen_content_controls);
    mContentView = findViewById(R.id.fullscreen_content);

    mContentView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            ActionBar actionBar = getSupportActionBar();
            if (actionBar != null) {
                actionBar.hide();
            }
            mControlsView.setVisibility(View.GONE);
            mContentView.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);
        }
    });

我还尝试更改主题android:theme="@android:style/Theme.NoTitleBar.Fullscreen"但仍隐藏它直到我触摸控件。我要隐藏它,直到我退出应用程序。没有root权限就可以这样做,因为我玩的大多数游戏都可以隐藏它,直到我退出游戏或向下滑动

1 个答案:

答案 0 :(得分:0)

我刚刚在this页面上找到了永久隐藏状态栏的解决方案。

首先我添加了import android.view.WindowManager;

然后这是我的OnCreate函数:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_testgame);

    //Hide status bar
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    //Hide action bar
    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.hide();
    }

}

此代码可帮助您再次显示状态栏

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);// Show status bar