Comment définir la couleur du titre pour la nouvelle barre d'outils?

119

J'utilise la nouvelle barre d'outils v7 et pour la vie de moi je ne peux pas comprendre comment changer la couleur du titre. J'ai défini le @style de la barre d'outils sur un style déclaré dans styles.xml et appliqué un titleTextStyle avec un textColor. Est-ce que je manque quelque chose? Je suis en train de coder pour Lollipop mais je teste actuellement sur un appareil Kitkat.

styles.xml

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
    </style>

    <style name="ActionBar" parent="Theme.AppCompat">
        <item name="android:background">@color/actionbar_background</item>
        <item name="android:titleTextStyle">@style/ActionBar.TitleTextStyle</item>
    </style>

    <style name="ActionBar.TitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
        <item name="android:textColor">@color/actionbar_title_text</item>
    </style>

</resources>

actionbar.xml:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar_actionbar"
    android:layout_width="match_parent"
    android:layout_height="?actionBarSize"
    style="@style/ActionBar"/>
Dennis
la source

Réponses:

241

Option 1) Le moyen rapide et facile (barre d'outils uniquement)

Depuis appcompat-v7-r23, vous pouvez utiliser les attributs suivants directement sur votre Toolbarou son style:

app:titleTextColor="@color/primary_text"
app:subtitleTextColor="@color/secondary_text"

Si votre SDK minimum est de 23 et que vous utilisez natif, Toolbarremplacez simplement le préfixe de l'espace de noms par android.

En Java, vous pouvez utiliser les méthodes suivantes:

toolbar.setTitleTextColor(Color.WHITE);
toolbar.setSubtitleTextColor(Color.WHITE);

Ces méthodes prennent une couleur int et non un ID de ressource de couleur!

Option 2) Remplacer le style de la barre d'outils et les attributs de thème

layout / xxx.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.MyApp.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    style="@style/Widget.MyApp.Toolbar.Solid"/>

values ​​/ styles.xml

<style name="Widget.MyApp.Toolbar.Solid" parent="Widget.AppCompat.ActionBar">
    <item name="android:background">@color/actionbar_color</item>
    <item name="android:elevation" tools:ignore="NewApi">4dp</item>
    <item name="titleTextAppearance">...</item>
</style>

<style name="ThemeOverlay.MyApp.ActionBar" parent="ThemeOverlay.AppCompat.ActionBar">
    <!-- Parent theme sets colorControlNormal to textColorPrimary. -->
    <item name="android:textColorPrimary">@color/actionbar_title_text</item>
</style>

Aidez-moi! Mes icônes ont aussi changé de couleur!

@PeterKnut a signalé que cela affecte la couleur du bouton de débordement, du bouton du tiroir de navigation et du bouton de retour. Il change également la couleur du texte de SearchView.

Concernant les couleurs des icônes: L' colorControlNormalhérite de

  • android:textColorPrimary pour les thèmes sombres (blanc sur noir)
  • android:textColorSecondary pour les thèmes clairs (noir sur blanc)

Si vous appliquez cela au thème de la barre d'action , vous pouvez personnaliser la couleur de l'icône.

<item name="colorControlNormal">#de000000</item>

Il y avait un bogue dans appcompat-v7 jusqu'à r23 qui vous obligeait à remplacer également l'homologue natif comme ceci:

<item name="android:colorControlNormal" tools:ignore="NewApi">?colorControlNormal</item>

Aidez-moi! Mon SearchView est en désordre!

Remarque: cette section est peut-être obsolète.

Puisque vous utilisez le widget de recherche qui, pour une raison quelconque, utilise une flèche de retour différente (pas visuellement, techniquement) de celle incluse avec appcompat-v7, vous devez le définir manuellement dans le thème de l' application . Les dessinables de la bibliothèque de support sont correctement teintés. Sinon, ce serait toujours blanc.

<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>

Quant au texte de la vue de recherche ... il n'y a pas de moyen facile. Après avoir fouillé sa source, j'ai trouvé un moyen d'accéder à la vue texte. Je n'ai pas testé cela, alors faites-le moi savoir dans les commentaires si cela n'a pas fonctionné.

SearchView sv = ...; // get your search view instance in onCreateOptionsMenu
// prefix identifier with "android:" if you're using native SearchView
TextView tv = sv.findViewById(getResources().getIdentifier("id/search_src_text", null, null));
tv.setTextColor(Color.GREEN); // and of course specify your own color

Bonus: remplacer le style ActionBar et les attributs du thème

Un style approprié pour une action par défaut de la barre d'action appcompat-v7 ressemblerait à ceci:

<!-- ActionBar vs Toolbar. -->
<style name="Widget.MyApp.ActionBar.Solid" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="background">@color/actionbar_color</item> <!-- No prefix. -->
    <item name="elevation">4dp</item> <!-- No prefix. -->
    <item name="titleTextStyle">...</item> <!-- Style vs appearance. -->
</style>

<style name="Theme.MyApp" parent="Theme.AppCompat">
    <item name="actionBarStyle">@style/Widget.MyApp.ActionBar.Solid</item>
    <item name="actionBarTheme">@style/ThemeOverlay.MyApp.ActionBar</item>
    <item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
</style>
Eugen Pechanec
la source
2
Cette solution a divers effets secondaires. textColorPrimary est également appliqué sur le bouton du tiroir de navigation et le texte dans le widget de recherche. De plus, la couleur du bouton de retour est définie sur blanc (ne me demandez pas pourquoi).
Peter Knut
@PeterKnut À l'époque, je n'avais pas réalisé à quel point la solution proposée était incomplète. Après l'édition - c'est comme ça que je l'utilise et ça marche. Veuillez cependant consulter l'extrait de couleur du texte de la vue de recherche.
Eugen Pechanec
Maintenant, cela fonctionne presque correctement. Deux remarques: creuser du texte dans le widget de recherche n'est pas une bonne idée, son identifiant peut être changé à l'avenir. La propriété Background de Widget.MyApp.ActionBar influence également l'arrière-plan des boutons et des info-bulles. L'arrière-plan doit être défini directement dans <android.support.v7.widget.Toolbar>.
Peter Knut
Je suis d'accord, ce n'est pas une bonne idée, j'ajouterais au moins une vérification nulle (mais quelles sont les chances de changer cet identifiant). Concernant l'arrière-plan: Vous n'avez pas raison, si vous l'ajoutez comme style à l'élément de la barre d'outils, l'arrière-plan s'applique uniquement au widget de la barre d'outils. Si vous définissez l'arrière-plan dans ThemeOverlayet que vous l'utilisez comme thème , l'arrière-plan de chaque élément enfant sera également coloré.
Eugen Pechanec
OK, vous avez raison avec le style par rapport au thème. Mon erreur.
Peter Knut
40

Voici ma solution si vous devez changer uniquement la couleur du titre et non la couleur du texte dans le widget de recherche.

layout / toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:background="@color/toolbar_bg"
    app:theme="@style/AppTheme.Toolbar"
    app:titleTextAppearance="@style/AppTheme.Toolbar.Title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"/>

values ​​/ themes.xml

<resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
    </style>

    <style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.ActionBar">
        <!-- Customize color of navigation drawer icon and back arrow --> 
        <item name="colorControlNormal">@color/toolbar_icon</item>
    </style>

    <style name="AppTheme.Toolbar.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
        <!-- Set proper title size -->
        <item name="android:textSize">@dimen/abc_text_size_title_material_toolbar</item>
        <!-- Set title color -->
        <item name="android:textColor">@color/toolbar_title</item>
    </style>
</resources>

De la même manière, vous pouvez également définir subtitleTextAppearance.

Peter Knut
la source
J'avais un problème où la couleur du titre serait différente selon que la barre d'outils existait dans un fragment ou dans une activité. Utiliser cette astuce pour remplacer la couleur était le seul correctif que j'ai pu trouver (les autres moyens de changer la couleur ne fonctionnaient pas). J'espère que cela aidera plus de gens. Merci!
Pedro Loureiro
3
@Peter Knut, vous devez spécifier que cela ne fonctionne que pour API21 et au-dessus, ce qui le rend inutile
DoruChidean
@DoruChidean testé avec Jelly Bean (API 16): ça marche comme un charme!
crubio
Impossible de définir le thème de l'activité. IE, <activity android: name = ". SomeActivity" android: theme = "@ style / AppTheme.Toolbar"
lostintranslation
11

Si vous prenez en charge l'API 23 et versions ultérieures , vous pouvez désormais utiliser l' attribut titleTextColor pour définir la couleur du titre de la barre d'outils.

layout / toolbar.xml

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:titleTextColor="@color/colorPrimary"
        />

MyActivity.java

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar)
toolbar.setTitleTextColor(Color.WHITE);
clé fractale
la source
Ceux-ci semblent également être pris en charge par la bibliothèque appcompat.
Eugen Pechanec
10

Réglage app:titleTextColorsur mes android.support.v7.widget.Toolbartravaux pour moi sur Android 4.4 et sur 6.0 aussi avec com.android.support:appcompat-v7:23.1.0:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:titleTextColor="@android:color/white" />
hunyadym
la source
4
Notez que l'espace de noms est app et non android.
Tommie
ajouter simplement cette application de ligne: titleTextColor = "@ android: couleur / blanc" a fonctionné pour moi dans kitkat et au-dessus également. Merci @hunyadym
Ghanshyam Nayma
9

Cela m'ennuyait un moment et je n'aimais aucune des réponses données, alors j'ai jeté un coup d'œil à la source pour voir comment cela fonctionne.

FractalWrench est sur la bonne voie, mais il peut être utilisé sous l'API 23 et n'a pas besoin d'être défini sur la barre d'outils.

Comme d'autres l'ont dit, vous pouvez définir un style dans la barre d'outils avec

app:theme="@style/ActionBar"

et dans ce style, vous pouvez définir la couleur du texte du titre avec

<item name="titleTextColor">#00f</item>

pour pré API 23 ou pour 23+

<item name="android:titleTextColor">your colour</item>

Xml complet

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="?attr/actionBarSize"
    android:layout_width="match_parent"
    app:theme="@style/ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Dark"/>


<style name="ActionBar" parent="@style/ThemeOverlay.AppCompat.ActionBar">
    <item name="android:titleTextStyle">@style/ActionBarTextStyle</item>
    <item name="titleTextColor">your colour</item>
    <item name="android:background">#ff9900</item>
</style>

Voici tous les attributs qui peuvent être définis pour une barre d'outils

<declare-styleable name="Toolbar">
    <attr name="titleTextAppearance" format="reference" />
    <attr name="subtitleTextAppearance" format="reference" />
    <attr name="title" />
    <attr name="subtitle" />
    <attr name="gravity" />
    <attr name="titleMargins" format="dimension" />
    <attr name="titleMarginStart" format="dimension" />
    <attr name="titleMarginEnd" format="dimension" />
    <attr name="titleMarginTop" format="dimension" />
    <attr name="titleMarginBottom" format="dimension" />
    <attr name="contentInsetStart" />
    <attr name="contentInsetEnd" />
    <attr name="contentInsetLeft" />
    <attr name="contentInsetRight" />
    <attr name="maxButtonHeight" format="dimension" />
    <attr name="navigationButtonStyle" format="reference" />
    <attr name="buttonGravity">
        <!-- Push object to the top of its container, not changing its size. -->
        <flag name="top" value="0x30" />
        <!-- Push object to the bottom of its container, not changing its size. -->
        <flag name="bottom" value="0x50" />
    </attr>
    <!-- Icon drawable to use for the collapse button. -->
    <attr name="collapseIcon" format="reference" />
    <!-- Text to set as the content description for the collapse button. -->
    <attr name="collapseContentDescription" format="string" />
    <!-- Reference to a theme that should be used to inflate popups
         shown by widgets in the toolbar. -->
    <attr name="popupTheme" format="reference" />
    <!-- Icon drawable to use for the navigation button located at
         the start of the toolbar. -->
    <attr name="navigationIcon" format="reference" />
    <!-- Text to set as the content description for the navigation button
         located at the start of the toolbar. -->
    <attr name="navigationContentDescription" format="string" />
    <!-- Drawable to set as the logo that appears at the starting side of
         the Toolbar, just after the navigation button. -->
    <attr name="logo" />
    <!-- A content description string to describe the appearance of the
         associated logo image. -->
    <attr name="logoDescription" format="string" />
    <!-- A color to apply to the title string. -->
    <attr name="titleTextColor" format="color" />
    <!-- A color to apply to the subtitle string. -->
    <attr name="subtitleTextColor" format="color" />
</declare-styleable>
Stimsoni
la source
4

Le moyen le plus simple de changer la Toolbarcouleur du titre avec inCollapsingToolbarLayout .

Ajouter ci-dessous les styles à CollapsingToolbarLayout

<android.support.design.widget.CollapsingToolbarLayout
        app:collapsedTitleTextAppearance="@style/CollapsedAppBar"
        app:expandedTitleTextAppearance="@style/ExpandedAppBar">

styles.xml

<style name="ExpandedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textSize">24sp</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>

    <style name="CollapsedAppBar" parent="@android:style/TextAppearance">
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textAppearance">@style/TextAppearance.Lato.Bold</item>
    </style>
Poras Bhardwaj
la source
3

Si vous pouvez utiliser l'application appcompat-v7 : titleTextColor = "# fff">

<android.support.v7.widget.Toolbar  
        android:id="@+id/toolbar"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:background="@color/colorPrimary"   
        android:visibility="gone"   
        app:titleTextColor="#fff">   
    </android.support.v7.widget.Toolbar>   
Surender Kumar
la source
2

Cela a fonctionné pour moi

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    android:minHeight="?attr/actionBarSize"
    app:navigationIcon="@drawable/ic_back"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:subtitleTextColor="@color/white"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:title="This week stats"
    app:titleTextColor="@color/white">


    <ImageView
        android:id="@+id/submitEditNote"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_gravity="right"
        android:layout_marginRight="10dp"
        android:src="@android:drawable/ic_menu_manage" />
</android.support.v7.widget.Toolbar>
Hitesh Sahu
la source
2

Créez une barre d'outils dans votre xml ... toolbar.xml:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"

    </android.support.v7.widget.Toolbar>

Ajoutez ensuite ce qui suit dans votre toolbar.xml:

app:titleTextColor="@color/colorText"
app:title="@string/app_name">

Remeber @ color / colorText est simplement votre fichier color.xml avec l'attribut color nommé colorText et votre color. C'est la meilleure façon d'appeler vos chaînes plutôt que de coder en dur votre couleur dans votre toolbar.xml. Vous avez également d'autres options pour modifier votre texte, telles que: textAppearance ... etc ... tapez simplement app: text ... et intelisense vous donnera des options dans Android Studio.

votre barre d'outils finale devrait ressembler à ceci:

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:layout_weight="1"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/Theme.AppCompat"
       app:subtitleTextAppearance="@drawable/icon"
        app:title="@string/app_name">
    </android.support.v7.widget.Toolbar>

NB: Cette barre d'outils doit se trouver dans votre activity_main.xml.Easy Peasie

Une autre option est de tout faire dans votre classe:

Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setTitleTextColor(Color.WHITE);

Bonne chance

RileyManda
la source
Hé, merci, cela fonctionne. Mais vous savez utiliser cet attribut uniquement dans les styles? Au lieu de rendre le XML plus désordonné. Merci :)
Greggz
évidemment, votre @color provient directement de votre ressource de chaîne. De cette façon, votre xml est plus soigné que le codage en dur de vos couleurs.
RileyManda
1

Pour changer la couleur

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="?attr/colorPrimary"

/>

Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar);
        myToolbar.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.Auth_Background));
        setSupportActionBar(myToolbar);
Mourad MAMASSI
la source
1

J'ai eu du mal avec cela pendant quelques heures aujourd'hui parce que toutes ces réponses sont un peu dépassées maintenant, alors qu'avec MDC et les nouvelles capacités de thématisation, je ne pouvais tout simplement pas voir comment remplacer app:titleTextColor application à l'échelle en tant que style.

La réponse est qu'il titleTextColorest disponible dans le styles.xml si vous remplacez quelque chose qui hérite de Widget.AppCompat.Toolbar. Aujourd'hui, je pense que le meilleur choix est censé être Widget.MaterialComponents.Toolbar:

<style name="Widget.LL.Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
     <item name="titleTextAppearance">@style/TextAppearance.LL.Toolbar</item>
     <item name="titleTextColor">@color/white</item>
     <item name="android:background">?attr/colorSecondary</item>
</style>

<style name="TextAppearance.LL.Toolbar" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
     <item name="android:textStyle">bold</item>
</style>

Et dans le thème de votre application, spécifiez le style de la barre d'outils:

<item name="toolbarStyle">@style/Widget.LL.Toolbar</item>

Vous pouvez maintenant laisser le xml dans lequel vous spécifiez la barre d'outils inchangé. Pendant longtemps, j'ai pensé que changer l' android:textColorapparence du texte du titre de la barre d'outils devrait fonctionner, mais pour une raison quelconque, ce n'est pas le cas.

Daniel Wilson
la source
0
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          xmlns:app="http://schemas.android.com/apk/res-auto">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:titleTextColor="@color/white"
    android:background="@color/green" />

Vipin Sharma
la source
0
public class MyToolbar extends android.support.v7.widget.Toolbar {

public MyToolbar(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    AppCompatTextView textView = (AppCompatTextView) getChildAt(0);
    if (textView!=null) textView.setTextAppearance(getContext(), R.style.TitleStyle);
}

}

Ou une utilisation simple depuis MainActivity:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbarMain);
setSupportActionBar(toolbar);
((AppCompatTextView) toolbar.getChildAt(0)).setTextAppearance(this, R.style.TitleStyle);

style.xml

<style name="TileStyle" parent="TextAppearance.AppCompat">
    <item name="android:textColor">@color/White</item>
    <item name="android:shadowColor">@color/Black</item>
    <item name="android:shadowDx">-1</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
</style>
Fonctionnalité IQ.
la source
Bien que ce code puisse répondre à la question, il serait préférable d'inclure un certain contexte , en expliquant comment il fonctionne et quand l' utiliser. Les réponses basées uniquement sur le code ne sont pas utiles à long terme.
Aditi Rawat
0

Faites-le avec toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// c'est un style où vous pouvez personnaliser votre jeu de couleurs

 <style name="TitleTextStyle" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:fontFamily">@string/you_font_family</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textAppearance">@style/you_text_style</item>
    <item name="android:textColor">#000000</item>
    <item name="android:textSize">20sp</item>
</style>
minable
la source
0

Très simple, cela a fonctionné pour moi (titre et icône blanche):

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/PrimaryColor"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    android:elevation="4dp" />
Almeida
la source
0

Avec la bibliothèque de composants de matériaux, vous pouvez utiliser app:titleTextColor attribut.

Dans la mise en page, vous pouvez utiliser quelque chose comme:

<com.google.android.material.appbar.MaterialToolbar
    app:titleTextColor="@color/...."
    .../>

Vous pouvez également utiliser un style personnalisé :

<com.google.android.material.appbar.MaterialToolbar
     style="@style/MyToolbarStyle"
    .../>

avec (étendre le Widget.MaterialComponents.Toolbar.Primarystyle):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar.Primary">
       <item name="titleTextColor">@color/....</item>
  </style>

ou (étendre le Widget.MaterialComponents.Toolbarstyle):

  <style name="MyToolbarStyle" parent="Widget.MaterialComponents.Toolbar">
       <item name="titleTextColor">@color/....</item>
  </style>

entrez la description de l'image ici

Vous pouvez également remplacer la couleur définie par le style à l'aide de l' android:themeattribut (en utilisant le Widget.MaterialComponents.Toolbar.Primarystyle):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar.Primary"
        android:theme="@style/MyThemeOverlay_Toolbar"
        />

avec:

  <style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is also used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/...</item>
  </style>

entrez la description de l'image ici

ou (en utilisant le Widget.MaterialComponents.Toolbarstyle):

    <com.google.android.material.appbar.MaterialToolbar
        style="@style/Widget.MaterialComponents.Toolbar"
        android:theme="@style/MyThemeOverlay_Toolbar2"

avec:

  <style name="MyThemeOverlay_Toolbar3" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary">
    <!-- This attributes is used by title -->
    <item name="android:textColorPrimary">@color/white</item>

    <!-- This attributes is used by navigation icon and overflow icon -->
    <item name="colorOnPrimary">@color/secondaryColor</item>
  </style>
Gabriele Mariotti
la source