Dans mon activité, je change la couleur de la barre d’outils à l’aide de Palette
mais sur les périphériques 5.0 utilisant ActionBarActivity
la couleur de la status bar
est la couleur de mon colorPrimaryDark
dans mon thème d’activité.
Je me rends compte que dans 5.0 vous pouvez utiliser Window.setStatusBarColor()
mais ActionBarActivity
ne l’a pas.
alors ma question est dans 5.0 comment puis-je changer la couleur de la barre d’état avec ActionBarActivity
?
Je ne suis pas sûr de comprendre le problème.
Si vous souhaitez modifier la couleur de la barre d’état par programmation (et à condition que le périphérique possède Android 5.0), vous pouvez utiliser Window.setStatusBarColor()
. Que l’activité soit dérivée d’ Activity
ou d’ ActionBarActivity
ne devrait pas faire de différence.
Essayez juste de faire:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.BLUE); }
Je viens de tester cela avec ActionBarActivity
et ça marche bien.
Remarque: La définition de l’indicateur FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
programmation n’est pas nécessaire si votre fichier de styles values-v21
est déjà défini, via:
- true
Il existe différentes manières de modifier la couleur de la barre d’état.
1) Utilisation du styles.xml. Vous pouvez utiliser l’atsortingbut android: statusBarColor pour le faire de manière simple mais statique.
Remarque: Vous pouvez également utiliser cet atsortingbut avec le thème Matière.
2) Vous pouvez le faire dynamicment en utilisant la méthode setStatusBarColor (int) dans la classe Window. Mais rappelez-vous que cette méthode est uniquement disponible pour API 21 ou supérieure. Alors, assurez-vous de vérifier cela ou votre application tombera sûrement en panne dans les appareils inférieurs.
Voici un exemple pratique de cette méthode.
if (Build.VERSION.SDK_INT >= 21) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setStatusBarColor(getResources().getColor(R.color.primaryDark)); }
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 cela aide.
Je ne pense pas que la couleur de la barre d’état a été implémentée dans AppCompat pour le moment. Ce sont les atsortingbuts disponibles:
(De \ sdk \ extras \ android \ support \ v7 \ appcompat \ res \ values \ attrs.xml )
Essayez ceci, j’ai utilisé ceci et cela fonctionne très bien avec v21.
Merci pour les réponses ci-dessus, avec l’aide de ceux-ci, après que certaines R & D pour l’application xamarin.android MVVMCross, ci-dessous travaillé
Indicateur spécifié pour l’activité dans la méthode OnCreate
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); this.Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); }
Pour chaque MvxActivity, le thème est mentionné ci-dessous
[Activity( LaunchMode = LaunchMode.SingleTop, ScreenOrientation = ScreenOrientation.Portrait, Theme = "@style/Theme.Splash", Name = "MyView" )]
Mon SplashStyle.xml ressemble à ci-dessous
Et j’ai V8 appcompact référé.