在运行时隐藏/显示状态栏

时间:2015-09-01 09:45:38

标签: android android-theme android-statusbar

我希望有一个全屏应用,隐藏onCreate中的状态栏,然后在某个时候,当用户打开选项菜单时,我想显示状态栏。然后,当选项菜单关闭时,再次隐藏状态栏。

目前我无法实现这一点,因为状态栏的更改只能在向Activity添加内容之前完成,所以尝试这样做:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);

抛出此异常

09-01 12:37:19.415: E/AndroidRuntime(2737): java.lang.RuntimeException: Unable to pause activity {com.bla.blabla/com.bla.blabla.MainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content

这可以实现吗?

编辑:我知道当你第一次制作代码时,必须在setContentView之前调用代码,清楚得足够,我想知道它是否已经知道了当用户与应用程序交互时,可以在运行时稍后进行这些更改。

2 个答案:

答案 0 :(得分:1)

尝试使用沉浸式全屏模式(4.4+版本)。阅读更多相关信息here

答案 1 :(得分:0)

setContentView

之前调用
setContentView(R.layout.activitylayout);

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activitylayout);