Barre d’état Couleur non visible – 5.0 Lollipop Android Studio: (AppCompat-v7: r21)

J’utilise la bibliothèque de AppCompat-v7:21.0.0 charge AppCompat-v7:21.0.0 pour Android 5.0 Lollipop dans Android Studio. Mon problème est que la couleur de la barre d’état qui peut être modifiée en définissant colorPrimaryDark dans le fichier values/styles.xml apparaît en noir, à la fois dans l’aperçu de la présentation XML et dans l’émulateur.

Alors, qu’est-ce qui ne va pas? Est-ce que je manque quelque chose? S’il vous plaît, faites-moi savoir. Merci.

EDIT: Je suis conscient du fait qu’il est impossible de changer la couleur de la barre d’état sur les versions Pre-Lollipop. Mon aperçu XML Layout Editor et mon émulateur sont tous deux définis sur API Level 21 (5.0 Lollipop). Mais, la barre d’état n’est toujours pas de la couleur que j’ai définie dans colorPrimaryDark . J’ai essayé de faire statusBarColor dans styles.xml mais en vain. C’est toujours noir.

AUSSI: J’ai vu une des réponses sur une question similaire où ils m’ont conseillé de mettre ma minSdkVersion à 21. J’ai essayé, mais ça n’a pas fonctionné. Et je veux que mon application s’exécute sur les appareils avec API niveau 15 et supérieur.

Veuillez lire ceci: Pour que cela prenne effet, la fenêtre doit dessiner les arrière-plans de la barre système avec

 android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS 

mais

 android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 

ne doit pas être défini ( Source )

Dans le cas où vous ne savez pas comment append ce drapeau:

 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); 

Cela a fonctionné pour moi:

  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(R.color.some_color)); } 

Avez-vous défini la version du SDK cible sur 21? J’ai eu le même problème lorsque j’ai laissé la version du SDK cible à 19. Vous pouvez laisser le min SDK à un niveau inférieur.

Et bien sûr, vous devez hériter du thème approprié et vous assurer que votre activité l’utilise.

Vérifiez si vous éditez le styles.xml dans le dossier values-v21 . Si vous définissez la version de SDK sur 21, elle ne cherchera pas les styles.xml dans le dossier de values (mais cela devrait être le cas).

entrer la description de l'image ici

test sur mon nexus7 5.1.1

set in style.xml v21 / v22 n’est pas fonctionnel

 true @android:color/holo_red_dark 

mais

mis en activité

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(android.R.color.holo_red_dark)); } 

c’est du travail pour moi

La modification de la couleur de la barre d’état dans Pre-Lollipop (5.0) n’est pas possible en définissant colorPrimaryDark. Voir cet article .

Sur les anciennes plates-formes, AppCompat émule le thème de la couleur dans la mesure du possible. Pour le moment, cela se limite à la coloration de la barre d’action et de certains widgets.

Dans mon cas, values-v21/styles.xml contenait la ligne suivante qui remplaçait la couleur de la barre d’état définie dans les values/style.xml avec colorPrimaryDark :

 @android:color/transparent 

Enlever cela a fonctionné pour moi.

Dans mon cas, le coupable était la bibliothèque jfeinstein10/SlidingMenu . J’ai remplacé la bibliothèque par le Android navigation drawer et affiche maintenant la couleur de la barre d’état correctement.

Dans v22-appcompat ils (Android) ont maintenant ajouté le rendu de la couleur de la barre d’état dans l’aperçu du studio Android!

À propos de l’heure … Quoi qu’il en soit, assurez-vous que votre bibliothèque appcompat est mise à jour vers la dernière version, à savoir v22.0. +.

À votre santé!

Je travaillais sur une ancienne application et essayais de la convertir en style matériel. Le code et tout allait bien, mais la seule erreur qui empêchait la teinte de la barre d’état sur> = les périphériques Lollipop était “TargetSDKVersion” dans build.gradle . Il a été réglé à moins de 21. Je l’ai changé à 21 et la teinte de la barre d’état a commencé à fonctionner.

Cela a fonctionné pour moi. Suppression de la couleur de la barre d’état des styles. Ajouter un drapeau puis mettre la couleur que vous voulez ainsi

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); getWindow().setStatusBarColor(getResources().getColor(R.color.your_color)); }