Je dois faire une de mes activités appelée MyNoStatusBarActivity.Java
une activité plein écran.
J'ai ajouté dans le manifeste:
<activity
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
Android:name=".MyNoStatusBarActivity"
Android:noHistory="true"
Android:label="@string/app_name"
Android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation">
...
</activity>
Et dans le onCreate
de mon activité:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
Faire tout cela masque simplement la barre TITLE et non la barre STATUS.
De plus, si j'utilise le thème manifeste au niveau de l'application au lieu de mon activité, cela fonctionne mais pour toutes les activités de mon application, ce qui n'est pas ce que je veux. Je veux que la barre d'état ne s'applique qu'à une seule activité.
L'aide sera vraiment appréciée. Thnx!
P.S: Je suis d'accord, ce comportement n'est plus disponible dans Honeycomb/ICS. J'ai besoin de ça juste pour 2.2 et 2.3
MODIFIER
J'ai essayé toutes les suggestions mentionnées dans d'autres solutions en SO mais pas encore de succès. Le thème fonctionne lorsqu'il est appliqué au niveau de l'application mais pas au niveau de l'activité.
J'utilise HTC WildFire-S, Android ver 2.3.5
Dans votre fichier XML manifeste, au niveau de l'application, mettez ceci:
<application
...
Android:theme="@Android:style/Theme.NoTitleBar" >
</application>
et dans l'activité que vous voulez faire en plein écran, mettez ceci:
<activity
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen" >
...
</activity>
Supprimez toutes les méthodes setWindowsFeature ou setFlag dans onCreate.
Je pense que vous avez juste besoin de retirer le Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen
Du mainfest, de rester avec le code uniquement, cela a toujours fonctionné pour moi. Quel appareil de test utilisez-vous?
Assurez-vous également que ces appels arrivent avant vous appelez à setContentView(R.layout.xxx)
comme ceci
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.xxx);
Vérifiez l'ensemble de votre code pour les déclarations Android:theme
, C'est-à-dire les fichiers xml de manifestes et de dispositions individuelles. car cela ressemble à le déclarer au niveau de l'application fonctionne (car il remplace toutes les déclarations de thème ultérieures) mais il y a quelque chose qui remplace votre demande de niveau d'activité.
Essayez de rechercher l'ensemble de votre projet pour "Android: thème" et supprimez tout ce dont vous n'êtes pas sûr à 100%, testez-le de cette façon
Je mets ceci dans mon activité:
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_splash);
Et dans mon manifeste je ne modifie pas, c'est le mien, sans modifications:
Android:theme="@style/AppTheme"
Dans mon activité xml:
Android:theme="@Android:style/Theme.NoTitleBar.Fullscreen"
Ça fera l'affaire:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
}
Cela résoudra votre problème
il suffit de changer dans votre manifeste @Android: style ... pour @ style/..
<application
...
Android:theme="@style/Theme.AppCompat.NoActionBar">
...
</application>