当前位置: 首页 > 知识库问答 >
问题:

Android状态栏不会隐藏

仉昱
2023-03-14

我在隐藏状态栏时遇到了一些麻烦。

如果我使用此代码进入完全沉浸式模式(隐藏状态栏和导航),它确实会隐藏导航,但状态栏仍保持在那里:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.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 // hide nav bar
            | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );
    }
}

我也尝试过使用清单:

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

两者都不管用。还尝试了不使用setSysteMivis()函数的清单方法(只是为了测试它是否可以工作——应该是这样的,因为我以前用过这个),但没有。

在Android 4.4.2(索尼z2平板电脑)和Android L-Dev预览版(第二版,Nexus7)上测试

帮助

共有1个答案

艾望
2023-03-14

好吧,我想通了。不知何故科尔多瓦(2.7.0)干扰了全屏。

要让它工作,首先编辑配置。(res/xml/config.xml)中的xml,并添加以下首选项:

<preference name="fullscreen" value="true" />

然后,在onWindowFocus usChanged方法中,注释这一行:

| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar

所以它应该是这样的:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    if (hasFocus) {
        decorView.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 // hide nav bar
         //   | View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
        );
    }
}

最后但并非最不重要的一点:不要使用。全屏主题在你的清单上。

呐喊

 类似资料:
  • 本文向大家介绍Android实现隐藏状态栏和标题栏,包括了Android实现隐藏状态栏和标题栏的使用技巧和注意事项,需要的朋友参考一下 隐藏标题栏需要使用预定义样式:android:theme=”@android:style/Theme.NoTitleBar”. 隐藏状态栏:android:theme=”@android:style/Theme.NoTitleBar.Fullscreen”. 以上

  • 我正在创建一个应用程序,我希望状态栏隐藏。当我测试应用程序时,状态栏会在显示启动屏幕时隐藏,但一旦应用程序完全加载,状态栏会重新出现。 我正在使用Xcode 5和iOS7,并尝试以编程方式禁用状态栏 在info.plist文件中,并在. xib文件上使用属性检查器。似乎没有任何工作。 有什么想法吗?

  • 我正在开发一个简单的应用程序来测试材料设计。我正在使用,我的活动如下所示: 布局定义为: 我想改变Android5前的状态栏颜色,并将其设置为,但我找不到方法。我试着用: 但是setStatusBar颜色可以从第21级开始使用。为什么如果我在主题中定义并使用appcompact,状态栏不会改变颜色?有人能帮忙吗?

  • 在我的iOS视频应用程序中,状态栏隐藏在一些视图控制器中。我使用以下代码完成了这一操作。 > 它适用于iOS 5和iOS 6,但不适用于iOS 7。 例如: 它工作良好,但我不能显示状态栏再次在父视图控制器。

  • 我的项目中有多个故事板。我在一个故事板中有一个主页面浏览量控制器,我在一个单独的故事板中有一个安装视图控制器嵌入导航控制器。现在,当我从主页视图控制器中显示安装视图控制器导航控制器时,状态栏不会隐藏。但是当我将安装视图控制器故事板设置为info.plist中的主故事板文件库,并且安装视图控制器导航控制器是第一个呈现的视图时,状态栏将隐藏。我正在使用下面的代码隐藏状态栏。有人能告诉我当状态视图控制器

  • 我使用以下代码隐藏状态栏全屏的目的: 它以全屏模式显示屏幕,但当我触摸状态栏时,它会显示状态栏。我尝试了其他选项来添加应用程序中的全屏主题和无标题栏主题,以及清单中的活动级别,但结果仍然相同…:( 我不想在任何一步显示状态栏。如何在android中实现这一点? 编辑: Android OS版本是4.4.2(上面的代码在4.3上运行,但在4.4.2上不运行) 更新: 问题已经解决了。。。答案分别写在