2010-11-19 96 views
33

任何人都知道如何禁用/隱藏在android中顯示電池和其他東西的頂部通知欄。 任何幫助將不勝感激。隱藏通知欄

編輯:請同時添加如何隱藏ActionBar + NotificationBar爲以後的Android版本。

+3

你確定你的用戶要你? – Martin 2010-11-19 08:28:07

+1

@Martin:我甚至會爲此付費。 – Sliq 2012-08-29 17:36:00

+0

前兩個答案,也隱藏ActionBar。如果你打算只隱藏通知欄,請參閱我的答案。 – Behnam 2014-04-28 05:35:04

回答

67

你可以在你的AndroidManifest.xml中使用一個主題:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

或更改AppTheme的父母@android:款式/ Theme.NoTitleBar.Fullscreen這樣

<style name="AppTheme" parent="Theme.NoTitleBar.Fullscreen"> 
</style> 

然後將此主題應用於您想要的全屏活動如

android:theme="@style/AppTheme" 

,或者使用下面的代碼片段:

public class FullScreen 
    extends android.app.Activity 
{ 
    @Override 
    public void onCreate(android.os.Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
           WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.main); 
    } 
} 
+0

Java代碼不會爲我隱藏通知欄。但是,這個主題非常有效。 – RockMeetHardplace 2011-12-04 01:49:39

+0

感謝馬丁,兩種方法。 – 2012-05-08 06:46:30

+0

@馬丁..它像一個魅力。感謝您的幫助! – swiftBoy 2012-05-30 11:27:31

19
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
} 
18

上面隱藏動作條的答案了。 如果你打算只隱藏通知欄,使用此代碼:

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

小心把它的setContentView()之前。

+2

+1正是我在尋找這麼久。 – Bond 2014-01-31 04:20:04

2

成功實施@ Martin的建議的一個稍微修改版本以及一個自定義主題,以擺脫狀態和導航欄。

public class MyActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //* Hides Notification Bar 
    getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.activity_my); 
} 

頂部是用來擺脫狀態欄。將以下代碼作爲資源添加到您的@styles中,以關閉NavBar。

<resources> <style name="NoNav" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:windowActionBar">false</item> 
    <item name="android:windowNoTitle">true</item> 
</style> </resources> 

後您添加到您的資源文件,彈出打開AndroidManifest.xml中和機率使你的應用主題,以「@風格/ NoNav」。

Android UI臃腫件消除:)

1

您可以將此用於4.1或更高版本。

View decorView = getWindow().getDecorView();  
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN; 
decorView.setSystemUiVisibility(uiOptions); 
+1

它隱藏狀態欄,但我仍然可以看到顏色主要黑暗。 – 2016-06-27 06:03:44

+0

@SrikarReddy嘗試在您的xml佈局文件中刪除'android:fitsSystemWindows =「true」',以便向您的活動膨脹。對我來說它有所幫助。 – Moritz 2016-09-08 18:31:05

3
@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 
     if (hasFocus) { 
      getWindow().getDecorView().setSystemUiVisibility(
       View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
       | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
       | View.SYSTEM_UI_FLAG_FULLSCREEN 
       | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 
     } 
    } 
+0

謝謝,爲我工作。 – 2016-05-27 21:18:02

+0

你的惠康@shahzainali – 2016-11-27 05:12:49