隐藏状态栏不起作用

时间:2017-01-09 17:11:12

标签: android

我使用SYSTEM_UI_FLAG_FULLSCREEN隐藏status bar,代码如下(sdk> 16):

 Decorview decorview = getWindow().getDecorview();
 decorview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

但是,它可以在某些Android手机上运行但在其他方面失败,如下所示: wrong status bar hidden

白色酒吧有什么问题?为什么不隐藏? ps:风格还可以,只是正常风格,没有fitwindowsystem,没有沉浸感。

2 个答案:

答案 0 :(得分:0)

如Android Docs中所述,您可以在SDK<中隐藏statusBar这样的内容。 16即Android版低于Jellybean:

if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
在您致电onCreate之前,

setContentView方法中调用此方法。

对于16以上的SDK,请使用以下代码:

View decorView = getWindow().getDecorView();
// Hide the status bar.
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();

答案 1 :(得分:0)

1.如果Android版本低于Jellybean,请使用此调用隐藏。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT < 16) {
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    setContentView(R.layout.activity_main);
}

2.编码隐藏状态栏16和更高代码。

 Decorview decorview = getWindow().getDecorview();
 decorview.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);

注意:请记住,如果隐藏状态栏,则不应显示操作栏,因此如有必要,请隐藏该操作栏。

ActionBar actionBar = getActionBar();
actionBar.hide();

3.如果状态栏应始终隐藏在您的应用中,请在应用的清单文件中设置活动主题。

<application
    ...
    android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen" >
    ...
</application>