J'essaie de reproduire le comportement de l'application Google Agenda:
mais je n'ai pas trouvé le moyen de changer la couleur du texte du statut. Si je mets en blanc colorPrimaryDark, je ne peux pas voir les icônes ni le texte de la barre d'état car leur couleur est également blanche.
Est-il possible de changer la couleur du texte de la barre d'état?
Merci d'avance
Je ne sais pas quel niveau d'API vous essayez de cibler, mais si vous pouvez utiliser des éléments spécifiques à l'API 23, vous pouvez ajouter les éléments suivants à votre AppTheme styles.xml:
<item name="Android:statusBarColor">@color/colorPrimaryDark</item>
<item name="Android:windowLightStatusBar">true</item>
lorsque Android:windowLightStatusBar
est défini sur true, la couleur du texte de la barre d'état sera visible lorsque la couleur de la barre d'état est blanche, et inversement lorsque Android:windowLightStatusBar
est défini sur false, la couleur du texte de la barre d'état est conçue pour être visible lorsque la couleur de la barre d'état est sombre.
Exemple:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- Status bar stuff. -->
<item name="Android:statusBarColor">@color/colorPrimaryDark</item>
<item name="Android:windowLightStatusBar">true</item>
</style>
vous pouvez le faire par programme comme ceci répondre
il suffit d'ajouter ceci
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Comme précédemment, les SYSTEM_UI_FLAG_LIGHT_STATUS_BAR font le travail dans mon cas, n'oubliez pas de définir une valeur supérieure à l'API 22.
ajoutez ceci à oncreate après le setContentView:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}