如何在 Android 4 中隐藏状态栏

Posted

技术标签:

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

请帮帮我。

【问题讨论】:

How to toggle the 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);

【讨论】:

这只会隐藏操作栏。

以上是关于如何在 Android 4 中隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章

在 android 4.4+ 或 kitkat 中隐藏状态栏

如何在 Flutter 中隐藏 Android 状态栏

Android如何隐藏系统的状态栏

Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)

Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)

android为啥透明不能全屏?如何将状态栏给隐藏起来。