如何在Android 4中隐藏状态栏

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

Android 4中的状态栏

请帮帮我,谢谢。

可能是重复的问题:如何切换状态栏? - Ted Hopp
4个回答

6

在您的问题中显示的条形栏称为系统栏。

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

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

我尝试在我的摩托罗拉Xoom 2 Android 4.0.1上运行它,但没有成功。你确定这个可行吗?我在onCreate方法中调用了setSystemUiVisibility。 - Derzu

5

我同意Janusz的说法。在Android 4.0中,你无法获得100%真正的全屏。

使用以下方法来隐藏通知栏(也称状态栏、系统栏):

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

使用这个来隐藏它

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

如果我猜得没错的话,你正在尝试实现“展示模式”。你可以通过一个名为“SureLock”的应用程序获得一些帮助。它可以阻止所有“主页”和“返回”操作。


1
Surelock不仅仅添加这两个标志,它还完全隐藏了主页、最近使用的应用和屏幕截图按钮。只有主页按钮是可见的。在已经root的设备上,它实际上可以隐藏完整的状态栏并以全屏模式运行所有应用程序。 - PC.

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);
}

-3

你可以将它隐藏起来。只需在OnCreate()方法中使用以下API即可。

requestWindowFeature(Window.FEATURE_NO_TITLE);


这将仅隐藏操作栏。 - Janusz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接