J'utilise le thème MaterialComponents.DayNight dans mon application. En mode jour, la couleur du texte de la barre d'outils est noire. Mais lorsque je passe en mode nuit, la couleur du texte de la barre d'outils reste noire, donc elle n'est plus visible.
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
Je souhaite changer la couleur du texte de la barre d'outils en blanc en mode nuit. Comment puis je faire ça?
5 Réponses :
à mon avis, vous devriez définir le style sur noActionbar et concevoir une nouvelle barre d'outils et la personnaliser
Ajoutez cette entrée à votre thème:
<style name="PopupMenuTextAppearance" parent="TextAppearance.AppCompat.Menu"> <item name="android:textColor">?attr/colorOnBackground</item> </style>
Après cela, ajoutez le style en conséquence au styles.xml
:
<item name="android:itemTextAppearance">@style/PopupMenuTextAppearance</item>
?attr/colorOnBackground
est disponible dans la bibliothèque des composants matériels . Si vous ne l'utilisez pas, vous devriez pouvoir utiliser ?android:attr/textColorPrimary
place.
Définissez votre thème parent sur parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge"
En utilisant cela, vous conserverez le thème original de votre ActionBar avec les attributs DarkActionBar au-dessus du thème DayNight global de MaterialComponents.
Utilisez simplement dans votre mise en page (cela fonctionne également avec la androidx.appcompat.widget.Toolbar
) le style:
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary"> <item name="colorOnPrimary">@color/...</item> </style>
Définissez ensuite dans les values-night/colors.xml
le colorOnPrimary
.
Ensuite, il existe de nombreuses alternatives.
Vous pouvez personnaliser globalement le style de la barre d'outils dans le thème de l'application avec:
<com.google.android.material.appbar.MaterialToolbar android:theme="@style/MyThemeOverlay_Toolbar"
avec:
<com.google.android.material.appbar.MaterialToolbar style="@style/MyToolbar"
et définissez la couleur dans les values/colors.xml
et values-night/colors.xml
.
Ou appliquez simplement un style dans la barre d'outils
<style name="MyToolbar" parent="Widget.MaterialComponents.Toolbar.Primary"> <item name="titleTextColor">@color/.....</item> </style>
ou remplacez simplement le thème par:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight"> <item name="toolbarStyle">@style/MyToolbar</item> </style>
avec:
<com.google.android.material.appbar.MaterialToolbar style="@style/Widget.MaterialComponents.Toolbar.Primary"
J'ai utilisé ces deux lignes de code dans le fichier styles.xml:
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">#00695c</item> <item name="colorPrimaryVariant">#439889</item> <item name="colorOnPrimary">#ffffff</item> <item name="colorSecondary">#007769</item> <item name="colorSecondaryVariant">#48a697</item> <item name="colorOnSecondary">#ffffff</item> <item name="colorControlNormal">@android:color/white</item> <item name="android:textColorPrimary">@android:color/white</item> </style> </resources>
Il a changé la couleur du texte de la barre d'outils et l'icône X de la barre d'outils en blanc.
Le code entier ressemblait à ceci:
<item name="colorControlNormal">@android:color/white</item> <item name="android:textColorPrimary">@android:color/white</item>
Avez-vous trouvé une solution pour cela?
@androiddeveloper J'ai publié une réponse ci-dessous
D'accord, merci. Ici, obtenez +1 de moi :)