2013-03-12 181 views

回答

3

要隐藏状态栏

使用此代码在您的活动

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
     WindowManager.LayoutParams.FLAG_FULLSCREEN); 

变更申请主题清单文件如下

 android:theme="@android:style/Theme.Black.NoTitleBar" 
+3

这不包括“隐藏和显示”的“显示”部分。 – yiati 2014-03-25 16:53:40

9

我会用下面的添加和删除全屏标志:

// Hide status bar 
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
// Show status bar 
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
+0

它不为我工作:S – 2013-03-12 11:55:10

+1

隐藏部分作品,如果我在我的清单有“Theme.NoTitleBar”,但表演的一部分并不为我工作。 此外,如果我有“Theme.NoTitleBar.FullScreen”,则show和hide都不起作用。它永远卡在全屏幕中。 – mchiasson 2015-02-10 18:03:58

2

对于永世其表演的一部分不工作,你可以试试下面的代码

显示状态栏

if (Build.VERSION.SDK_INT < 16) { 
       getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    } 
    else { 
     View decorView = getWindow().getDecorView(); 
     // show the status bar. 
     int uiOptions = View.SYSTEM_UI_FLAG_VISIBLE; 
     decorView.setSystemUiVisibility(uiOptions); 
    } 
+0

这是为我工作,谢谢! – Granjero 2016-02-19 12:57:12

+0

不适用于棒棒糖 – 2016-08-02 22:12:45

0

参考 - https://developer.android.com/training/system-ui/immersive.html

// This snippet shows the system bars. It does this by removing all the flags 
// except for the ones that make the content appear under the system bars. 
private void showSystemUI() { 
    mDecorView.setSystemUiVisibility(
      View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); 
} 

虽然动作条上覆盖状态酒吧。

-1

KitKat中引入的功能之一是“Immersive Mode”。沉浸模式让用户能够通过滑动来显示/隐藏状态栏和导航栏。

示例代码:

public void toggleHideyBar() { 

     int uiOptions = getActivity().getWindow().getDecorView().getSystemUiVisibility(); 
     int newUiOptions = uiOptions; 
     boolean isImmersiveModeEnabled = 
       ((uiOptions | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY) == uiOptions); 
     if (isImmersiveModeEnabled) { 
      Log.i(TAG, "Turning immersive mode mode off. "); 
     } else { 
      Log.i(TAG, "Turning immersive mode mode on."); 
     } 

     // Navigation bar hiding: Backwards compatible to ICS. 
     if (Build.VERSION.SDK_INT >= 14) { 
      newUiOptions ^= View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 
     } 

     // Status bar hiding: Backwards compatible to Jellybean 
     if (Build.VERSION.SDK_INT >= 16) { 
      newUiOptions ^= View.SYSTEM_UI_FLAG_FULLSCREEN; 
     } 

     if (Build.VERSION.SDK_INT >= 18) { 
      newUiOptions ^= View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; 
     } 

     getActivity().getWindow().getDecorView().setSystemUiVisibility(newUiOptions); 
     //END_INCLUDE (set_ui_flags) 
    }