Dans l'une de mes activités, j'ai changé la couleur de la barre d'outils en utilisant Palette
. Mais sur les appareils 5.0, ActionBarActivity
la status bar
couleur est la couleur de mon colorPrimaryDark
thème d'activité, j'ai donc 2 couleurs très différentes et cela n'a pas l'air bien.
Je me rends compte que dans la version 5.0, vous pouvez utiliser Window.setStatusBarColor()
mais ActionBarActivity
ne l'a pas.
ma question est donc en 5.0 comment puis-je changer la couleur de la barre d'état avec ActionBarActivity
?
Réponses:
Je ne suis pas sûr de comprendre le problème.
Si vous souhaitez modifier la couleur de la barre d'état par programme (et à condition que l'appareil dispose d'Android 5.0), vous pouvez utiliser
Window.setStatusBarColor()
. Cela ne devrait pas faire de différence que l'activité soit dérivée deActivity
ouActionBarActivity
.Essayez simplement de faire:
Je viens de tester cela avec
ActionBarActivity
et cela fonctionne bien.Remarque: la définition de l'
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
indicateur par programme n'est pas nécessaire si votrevalues-v21
fichier de styles l'a déjà défini, via:la source
getWindow()
minSdkVersion
-à- dire et / ou destargetSdkVersion
attributs sur l'<uses-sdk ...>
élément).Il existe différentes manières de modifier la couleur de la barre d'état.
1) En utilisant le styles.xml. Vous pouvez utiliser l'attribut android: statusBarColor pour le faire de manière simple mais statique.
Remarque: vous pouvez également utiliser cet attribut avec le thème Matériau.
2) Vous pouvez le faire dynamiquement en utilisant la méthode setStatusBarColor (int) dans la classe Window. Mais rappelez-vous que cette méthode n'est disponible que pour l'API 21 ou supérieur. Assurez-vous donc de vérifier cela, sinon votre application plantera sûrement dans les appareils inférieurs.
Voici un exemple de travail de cette méthode.
où primaryDark est la teinte 700 de la couleur primaire que j'utilise dans mon application. Vous pouvez définir cette couleur dans le fichier colors.xml.
Essayez-le et faites-moi savoir si vous avez des questions. J'espère que ça aide.
la source
clearFlags
résoudre mon problèmeJe ne pense pas que la couleur de la barre d'état ait encore été implémentée dans AppCompat. Voici les attributs disponibles:
(Depuis \ sdk \ extras \ android \ support \ v7 \ appcompat \ res \ values \ attrs.xml )
la source
Essayez ceci, j'ai utilisé ceci et cela fonctionne très bien avec la v21.
la source
Merci pour les réponses ci-dessus, avec l'aide de celles-ci, après certains travaux de R&D pour l'application xamarin.android MVVMCross, ci-dessous a fonctionné
Indicateur spécifié pour l'activité dans la méthode OnCreate
Pour chaque MvxActivity, le thème est mentionné ci-dessous
Mon SplashStyle.xml ressemble à ci-dessous
Et j'ai V7 appcompact référencé.
la source
[Version Kotlin] J'ai créé cette extension qui vérifie également si la couleur souhaitée a suffisamment de contraste pour masquer l'interface utilisateur du système, comme l'icône d'état de la batterie, l'horloge, etc., nous définissons donc l'interface utilisateur du système en blanc ou en noir en fonction de cela.
la source
Postuler
en
Theme.AppCompat.Light.DarkActionBar
n'a pas fonctionné pour moi. Qu'est-ce que l'astuce est de donnercolorPrimaryDark
comme d'habitude avecandroid:colorPrimary
dans styles.xmlet dans le cadre
n'a pas eu à définir la couleur de la barre d'état dans le code.
la source