54

Anyone know how to disable/hide notification bar at the top which show battery and other things in android. Any help will be appreciated.

EDIT: Please also add how can I hide ActionBar+NotificationBar for later android versions.

Hassan Jawed
  • 1,650
  • 1
  • 12
  • 19

8 Answers8

85

You could use a theme in your AndroidManifest.xml:

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

or change parent of your AppTheme to @android:style/Theme.NoTitleBar.Fullscreen like this

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

then apply this theme on activities which you want Fullscreen like

android:theme="@style/AppTheme"

or use the following code snippet:

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);
    }
}
Hassan Jawed
  • 1,650
  • 1
  • 12
  • 19
Martin
  • 11,577
  • 16
  • 80
  • 110
32

The answers above hide ActionBar too. If you intend to only hide notification bar, use this code:

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

be careful to put it before setContentView().

Behnam
  • 6,510
  • 6
  • 35
  • 65
21
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
CaseyB
  • 24,780
  • 14
  • 77
  • 112
6

Another Simple option is to add <item name="android:windowFullscreen">true</item> on the theme you will apply to activities that don't need a notification bar...

like so..

<style name="AppTheme.Splash">
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowBackground">@drawable/background_splash</item>
</style>

Works like charm

konzo
  • 1,973
  • 22
  • 32
2

Successfully implemented a slightly modified version of @Martin's suggestion along with a custom theme to get rid of BOTH the Status and Navigation Bar.

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

Top part is used to get rid of the Status bar. Add the following code to your @styles as a resource to kill off the NavBar as well.

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

After you add this to your resource file, pop open AndroidManifest.xml and chance your application theme to "@style/NoNav".

Android UI bloatware eliminated :)

Nick Sarafa
  • 986
  • 10
  • 16
1

You can use this for 4.1 or upper versions.

View decorView = getWindow().getDecorView();    
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
reza.cse08
  • 5,938
  • 48
  • 39
  • 1
    It hides the status bar but I can still see the color primary dark. – Srikar Reddy Jun 27 '16 at 06:03
  • @SrikarReddy try to remove `android:fitsSystemWindows="true"` at your xml layout file you are inflating into your activity. For me it helped. – Moritz Sep 08 '16 at 18:31
0

you can do like this in onCreate() method :

View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
ActionBar actionBar = getActionBar();
actionBar.hide();
AflamZone
  • 81
  • 2
  • 3
0

This answer is for android developers who like minimalist and simplified one-liner code. If you intend to only hide notification bar, use this code:

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

be careful to put it before setContentView() in your on create() function of required activity.class

Zia
  • 705
  • 9
  • 11