2013-03-12 214 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) 
    }