2010-11-19 5 views
33

Quelqu'un sait comment désactiver/masquer la barre de notification en haut qui montre la batterie et d'autres choses dans Android. Toute aide sera appréciée.Masquer la barre de notification

EDIT: Veuillez également ajouter comment puis-je masquer ActionBar + NotificationBar pour les versions ultérieures d'Android.

+3

Êtes-vous sûr que vos utilisateurs voulez-vous? – Martin

+1

@Martin: Je voudrais même payer pour cela. – Sliq

+0

Les deux premières réponses, masquer ActionBar aussi. Si vous avez l'intention de masquer uniquement la barre de notification, consultez ma réponse. – Behnam

Répondre

67

Vous pouvez utiliser un thème dans votre AndroidManifest.xml:

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

ou d'un parent changement de votre AppTheme à @android: le style/Theme.NoTitleBar.Fullscreen comme celui-ci

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

puis appliquer ce thème sur les activités que vous voulez plein écran comme

android:theme="@style/AppTheme" 

ou utilisez le code suivant:

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

Le code java ne cache pas la barre de notification pour moi. Le thème, cependant, a bien fonctionné. – RockMeetHardplace

+0

Merci Martin, pour les deux approches. –

+0

@Martin .. cela a fonctionné comme un charme. apprécier pour votre aide !! – swiftBoy

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

Les réponses ci-dessus cache ActionBar aussi. Si vous avez l'intention de ne cacher la barre de notification, utilisez ce code:

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

Prenez soin de le mettre avant setContentView().

+2

+1 Exactement ce que je cherchais depuis si longtemps. – Bond

2

Mis en œuvre avec succès une version légèrement modifiée de la suggestion de @ Martin avec un thème personnalisé pour se débarrasser de la barre d'état et de navigation.

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

La partie supérieure est utilisée pour se débarrasser de la barre d'état. Ajoutez le code suivant à votre @styles en tant que ressource pour tuer aussi le 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> 

Après avoir ajouté ceci à votre fichier de ressources, pop AndroidManifest.xml ouvert et le hasard le thème de votre application "style @/NoNav".

bloatware UI Android :) éliminé

1

Vous pouvez l'utiliser pour les versions 4.1 ou supérieures.

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

Il cache la barre d'état mais je peux toujours voir la couleur primaire sombre. –

+0

@SrikarReddy essayer d'enlever 'android: fitsSystemWindows =" true "' à votre fichier de mise en page XML que vous gonflez dans votre activité. Pour moi, ça a aidé. – Moritz

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

Merci, a travaillé pour moi. –

+0

votre wellcome @shahzainali –

Questions connexes