web-dev-qa-db-fra.com

Comment puis-je rendre la barre d'état blanche avec des icônes noires?

Je souhaite modifier la couleur de la barre d'état de mon application afin qu'elle soit blanche avec des icônes noires (au lieu du noir par défaut avec des icônes blanches) Y a-t-il une manière de faire ça?

36
Jon

Avec Android M (niveau d'api 23), vous pouvez y parvenir à partir d'un thème doté de l'attribut Android:windowLightStatusBar.

Modifier : 

Comme Pdroid l’a mentionné, ceci peut également être réalisé par programme:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR); 
64
wrecker

Il est possible d’afficher la barre d’état blanche avec des icônes grises, par exemple. de cette façon pour SDK> = 23:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="Android:windowLightStatusBar">true</item>
</style>

dans votre styles.xml et définissez la colorPrimary sur blanc ou par programme:  

getWindow().setStatusBarColor(Color.WHITE);
15
Rammgarot

Je viens d’ajouter à mon activité sur Kotlin:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                window.statusBarColor = Color.WHITE
            }
7
Serg Burlaka

Aucune façon de le faire sauf si vous avez le contrôle de l’ensemble de la rom pour le personnaliser manuellement. Ce que je vous suggère de faire est d’utiliser une couleur gris clair pour la couleur de la barre d’état dans votre thème, comme le fait Google Drive. 

Edit: s'il vous plaît se référer à @Wrekcker répondre comme cela a changé dans Android M.

2
k0sh

il suffit d'ajouter ceci à votre style

<item name="Android:windowDrawsSystemBarBackgrounds">true</item>
<item name="Android:statusBarColor">@Android:color/transparent</item>

set Android: windowDrawsSystemBarBackgrounds to true * . Il s'agit d'un drapeau dont la description est donnée ci-dessous:

Indicateur indiquant si cette fenêtre est chargée de dessiner l’arrière-plan des barres système. Si la valeur est true et que la fenêtre n'est pas flottante, les barres système sont dessinées avec un arrière-plan transparent et les zones correspondantes de cette fenêtre sont remplies des couleurs spécifiées dans {@link Android.R.attr # statusBarColor} et {@link Android.R. .attr # navigationBarColor}. Correspond à {@link Android.view.WindowManager.LayoutParams # FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS}.

1