如何在Android 4中隐藏状态栏

时间:2012-02-07 06:59:53

标签: android statusbar

如何在Android 4中隐藏StatusBar:

StatusBar in Android 4

请帮帮我。

4 个答案:

答案 0 :(得分:6)

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

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

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

答案 1 :(得分: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”的应用获得一些帮助。这会阻止所有“主页”和“后退”操作。

答案 2 :(得分:3)

如果您希望在没有中间“jerked”布局的情况下获得顺畅的体验,这里是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 :(得分:-3)

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

requestWindowFeature(Window.FEATURE_NO_TITLE);