Changement d'état de la barre de couleur avec AppCompat ActionBarActivity
Dans un de mes Activités, j'ai changé la couleur de Barre d'outils à l'aide de Palette
. Mais 5.0 périphériques à l'aide de ActionBarActivity
la status bar
couleur est la couleur de mon colorPrimaryDark
dans mon activité de thème donc, j'ai 2 des couleurs très différentes et il n'a pas l'air bon.
Je me rends compte que dans la version 5.0, vous pouvez utiliser Window.setStatusBarColor()
mais ActionBarActivity
ne dispose pas de cette.
donc ma question est de 5.0 comment puis-je changer la barre d'état de couleur avec ActionBarActivity
?
- Avez-vous essayé d'utiliser SystemBarTint lib ?github.com/jgilfelt/SystemBarTint
- Double Possible de Comment modifier la barre d'état la couleur dans android
InformationsquelleAutor tyczj | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr de comprendre le problème.
Je vous voulez changer le statut de la barre de couleur par programme (et à condition que l'appareil a Android 5.0), alors vous peut utilisation
Window.setStatusBarColor()
. Il ne devrait pas faire une différence, si l'activité est dérivé deActivity
ouActionBarActivity
.Juste essayer de faire:
Juste testé avec
ActionBarActivity
et il fonctionne très bien.Remarque: le Réglage de la
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
drapeau par programme n'est pas nécessaire si votrevalues-v21
styles fichier a déjà, par le biais de:getWindow()
minSdkVersion
et/outargetSdkVersion
attributs sur la<uses-sdk ...>
élément).android:statusBarColor
dans votre thème.setStatusBarColor()
dans toutes les activités duonCreate()
(ou dans une classe de base pour toutes les activités, bien sûr).getColor(res_id)
, si la couleur est prise à partir de vos couleurs xmlIl y a différentes façons de changer le statut de la barre de couleur.
1) à l'Aide de la styles.xml. Vous pouvez utiliser le android:statusBarColor attribut pour ce faire, le facile, mais de manière statique.
Remarque: Vous pouvez également utiliser cet attribut avec le thème Matériau.
2) Vous pouvez le faire de manière dynamique à l'aide de la setStatusBarColor(int) de la méthode dans la classe de Fenêtre. Mais rappelez-vous que cette méthode est uniquement disponible pour les API de 21 ou plus. Donc, assurez-vous de vérifier que, ou de votre application va sûrement crash en bas des appareils.
Ici est un exemple de cette méthode.
où primaryDark est le de 700 de la teinte de la couleur primaire, j'utilise dans mon application. Vous pouvez définir cette couleur dans la colors.xml fichier.
N'essayez-le et laissez-moi savoir si vous avez des questions. Espérons que cela aide.
getColor
encore du travail mais c'est déconseillé.clearFlags
pour résoudre mon problèmeJe ne pense pas que la barre d'état la couleur a été mis en œuvre dans AppCompat encore. Ce sont les attributs qui sont disponibles:
(À partir de \sdk\extras\android\support\v7\appcompat\res\values\attrs.xml)
Essayer ce,
Je l'utilise et il fonctionne très bien avec la version v21.
Merci pour les réponses ci-dessus, avec l'aide de ceux qui, après certaines R&D pour xamarin.android MVVMCross application, ci-dessous travaillé
Indicateur spécifique de l'activité dans la méthode OnCreate
Pour chaque MvxActivity, le Thème est mentionné ci-dessous
Mon SplashStyle.xml ressemble comme ci-dessous
Et j'ai V7 appcompact visée.
L'application de
dans
Theme.AppCompat.Light.DarkActionBar
n'a pas fonctionné pour moi. Qu'a fait le truc est , donnantcolorPrimaryDark
comme d'habitude avecandroid:colorPrimary
dans styles.xmlet dans la mise en
n'avais pas à définir la barre d'état la couleur dans le code .