我设法在启动时隐藏状态栏。但每当我触摸控件状态栏出现。为了解决这个问题,我尝试使用此代码在每次触摸时隐藏它,但它首先显示然后隐藏。这个循环永远持续下去。
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权限就可以这样做,因为我玩的大多数游戏都可以隐藏它,直到我退出游戏或向下滑动
答案 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