【问题标题】:How to hide StatusBar in Android 4如何在 Android 4 中隐藏状态栏
【发布时间】:2012-02-28 15:23:58
【问题描述】:

如何在 Android 4 中隐藏状态栏:

请帮帮我。

【问题讨论】:

标签: android statusbar


【解决方案1】:

您问题中图像中显示的栏称为系统栏。

在没有硬件按钮的设备上,如果发生用户输入,系统栏将始终显示。您可以使用标志SYSTEM_UI_FLAG_HIDE_NAVIGATION 调用setSystemUiVisibility,并通过Window 请求以下窗口功能FLAG_FULLSCREEN。只要用户不与屏幕交互,这应该隐藏系统栏并使您的视图全屏显示。如果用户触摸屏幕,系统栏将重新出现以允许用户使用主软件键和后退软件键。

如果您有一个用户将与之交互的视图,但您不希望他被系统栏分心,您可以设置SYSTEM_UI_FLAG_LOW_PROFILE 标志。这应该会使系统栏变暗并减少分心。

【讨论】:

  • 我试过了,但在我的摩托罗拉 xoom 2 android 4.0.1 上不起作用。你确定这行得通吗?我在 onCreate 方法上调用 setSystemUiVisibility。
【解决方案2】:

我同意 Janusz 的观点。 Android 4.0 无法实现 100% 真全屏。

使用以下方法使通知栏(又名状态栏、系统栏)变暗

getWindow().getDecorView().setSystemUiVisibility
  (View.SYSTEM_UI_FLAG_LOW_PROFILE); 

并用它来隐藏它

getWindow().getDecorView().setSystemUiVisibility
  (View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);

而且,如果我猜对了,您正在尝试实现“信息亭模式”。您可以使用名为“surelock”的应用程序获得一些帮助。这会阻止所有“home”和“back”操作。

【讨论】:

  • Surelock 不仅仅是添加这两个标志。它完全隐藏了主页、最近的应用程序和屏幕截图按钮。只有主页按钮可见。在 root 设备上,它实际上可以隐藏完整的状态栏并以全屏模式运行所有应用程序。
【解决方案3】:

如果您希望获得流畅的体验,而没有中间的“急速”布局,这里是 API 级别 14 的解决方案。

final Window window = getWindow();
if (isFullScreen == true)
{
  window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  // This flag will prevent the status bar disappearing animation from jerking the content view
  window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
  window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
}
else
{
  window.addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
  window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
  window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

【讨论】:

    【解决方案4】:

    你可以隐藏它。只需在 OnCreate() 方法中使用以下 api

    requestWindowFeature(Window.FEATURE_NO_TITLE);

    【讨论】:

    • 这只会隐藏操作栏。
    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2018-03-14
    • 2021-02-20
    • 2016-05-10
    相关资源
    最近更新 更多