¿Cómo se configura el color del título de la nueva barra de herramientas?

119

Estoy usando la nueva barra de herramientas v7 y por mi vida no puedo averiguar cómo cambiar el color del título. Establecí el @style de la barra de herramientas en un estilo declarado en styles.xml y apliqué un titleTextStyle con un textColor. ¿Me estoy perdiendo de algo? Estoy codificando para Lollipop, pero estoy probando actualmente en un dispositivo 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
fuente

Respuestas:

241

Opción 1) La forma rápida y sencilla (solo barra de herramientas)

Desde appcompat-v7-r23, puede utilizar los siguientes atributos directamente en Toolbarsu estilo o en su estilo:

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

Si su SDK mínimo es 23 y usa nativo, Toolbarsimplemente cambie el prefijo del espacio de nombres a android.

En Java puede utilizar los siguientes métodos:

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

Estos métodos toman un color int, no un ID de recurso de color.

Opción 2) Anular el estilo de la barra de herramientas y los atributos del tema

diseño / 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"/>

valores / estilos.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>

¡Ayuda! ¡Mis iconos también cambiaron de color!

@PeterKnut informó que esto afecta el color del botón de desbordamiento, el botón del cajón de navegación y el botón de retroceso. También cambia el color del texto de SearchView.

En cuanto a los colores de los iconos: la colorControlNormalherencia de

  • android:textColorPrimary para temas oscuros (blanco sobre negro)
  • android:textColorSecondary para temas claros (negro sobre blanco)

Si aplica esto al tema de la barra de acciones , puede personalizar el color del icono.

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

Hubo un error en appcompat-v7 hasta r23 que requirió que también anularas la contraparte nativa de esta manera:

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

¡Ayuda! ¡Mi SearchView es un desastre!

Nota: esta sección posiblemente esté obsoleta.

Dado que usa el widget de búsqueda que, por alguna razón, usa una flecha hacia atrás diferente (no visualmente, técnicamente) que la que se incluye con appcompat-v7, debe configurarlo manualmente en el tema de la aplicación . Los dibujables de la biblioteca de soporte se tiñen correctamente. De lo contrario, siempre sería blanco.

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

En cuanto al texto de la vista de búsqueda ... no hay una manera fácil. Después de buscar en su fuente, encontré una manera de acceder a la vista de texto. No he probado esto, así que avíseme en los comentarios si esto no funcionó.

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

Bonificación: anule el estilo de ActionBar y los atributos del tema

El estilo apropiado para una barra de acción de acción predeterminada appcompat-v7 se vería así:

<!-- 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
fuente
2
Esta solución tiene varios efectos secundarios. textColorPrimary también se aplica en el botón del cajón de navegación y en el texto del widget de búsqueda. Además, el color del botón Atrás está configurado en blanco (no me preguntes por qué).
Peter Knut
@PeterKnut En ese momento no me di cuenta de lo incompleta que era la solución propuesta. Después de editar, así es como lo uso y funciona. Sin embargo, revise el fragmento de color del texto de la vista de búsqueda.
Eugen Pechanec
Ahora funciona casi correctamente. Dos notas: buscar texto en el widget de búsqueda no es una buena idea, su identificación se puede cambiar en el futuro. La propiedad de fondo en Widget.MyApp.ActionBar también influye en el fondo de los botones y la información sobre herramientas. El fondo debe establecerse en <android.support.v7.widget.Toolbar> directamente.
Peter Knut
Estoy de acuerdo, no es una buena idea, al menos agregaría un cheque nulo allí (sin embargo, cuáles son las probabilidades de que esa identificación cambie). Con respecto al fondo: no tiene razón, si lo agrega como un estilo al elemento de la barra de herramientas, el fondo se aplica solo al widget de la barra de herramientas. Si definiera el fondo en el ThemeOverlayy lo usara como tema , entonces el fondo de cada elemento hijo también se colorearía.
Eugen Pechanec
Está bien, tienes razón con estilo vs. tema. Mi error.
Peter Knut
40

Aquí está mi solución si necesita cambiar solo el color del título y no el color del texto en el widget de búsqueda.

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"/>

valores / 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 manera similar, también puede configurar subtitleTextAppearance.

Peter Knut
fuente
Tenía un problema donde el color del título sería diferente dependiendo de si la barra de herramientas existía en un Fragmento o en una Actividad. Usar este truco para anular el color fue la única solución que pude encontrar (otras formas de cambiar el color no funcionaron). Espero que esto ayude a más personas. ¡Gracias!
Pedro Loureiro
3
@Peter Knut, debe especificar que esto solo funciona para API21 y superior, lo que lo hace inútil
DoruChidean
@DoruChidean probado con Jelly Bean (API 16): ¡funciona como un encanto!
crubio
No es posible establecer el tema de la actividad. IE, <activity android: name = ". SomeActivity" android: theme = "@ style / AppTheme.Toolbar"
lostintranslation
11

Si es compatible con API 23 y superior, ahora puede usar el atributo titleTextColor para establecer el color del título de la barra de herramientas.

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);
fractal
fuente
Estos también parecen ser compatibles con la biblioteca appcompat.
Eugen Pechanec
10

Configurando app:titleTextColormis android.support.v7.widget.Toolbartrabajos para mí en Android 4.4 y en 6.0 también con 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
fuente
4
Tenga en cuenta que el espacio de nombres es aplicación y no Android.
Tommie
simplemente agregar esta aplicación de línea: titleTextColor = "@ android: color / white" funcionó para mí en kitkat y superior también. Gracias @hunyadym
Ghanshyam Nayma
9

Esto me molestó un rato y no me gustó ninguna de las respuestas dadas, así que eché un vistazo a la fuente para ver cómo funciona.

FractalWrench está en el camino correcto, pero se puede usar por debajo de API 23 y no tiene que configurarse en la barra de herramientas.

Como han dicho otros, puede establecer un estilo en la barra de herramientas con

app:theme="@style/ActionBar"

y en ese estilo puede establecer el color del texto del título con

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

para pre API 23 o para 23+

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

Xml completo

<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>

Aquí están todos los atributos que se pueden configurar para una barra de herramientas.

<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
fuente
4

La forma más sencilla de cambiar el Toolbarcolor del título con in CollapsingToolbarLayout.

Agregue los siguientes estilos a 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
fuente
3

Si puede usar la aplicación 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
fuente
2

Esto funcionó para mi

<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
fuente
2

Cree una barra de herramientas en su xml ... toolbar.xml:

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

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

Luego agregue lo siguiente en su toolbar.xml:

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

Remeber @ color / colorText es simplemente su archivo color.xml con el atributo de color llamado colorText y su color. Esta es la mejor manera de llamar a sus cadenas en lugar de codificar su color dentro de su toolbar.xml. También tienes otras opciones para modificar tu texto, como: textAppearance ... etc ... simplemente escribe app: text ... e intelisense te dará opciones en Android Studio.

su barra de herramientas final debería verse así:

 <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: Esta barra de herramientas debe estar dentro de su activity_main.xml.Easy Peasie

Otra opción es hacerlo todo en tu clase:

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

Buena suerte

RileyManda
fuente
Oye, gracias, esto funciona. ¿Pero sabes cómo usar ese atributo solo en los estilos? En lugar de hacer que el xml sea más complicado. Gracias :)
Greggz
obviamente, su @color proviene directamente de su recurso de cadena. De esa manera, su xml es más ordenado que codificar sus colores.
RileyManda
1

Para cambiar el color

<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
fuente
1

Luché con esto durante unas horas hoy porque todas estas respuestas están un poco desactualizadas ahora, con MDC y las nuevas capacidades de temática, simplemente no pude ver cómo anular la app:titleTextColoraplicación como estilo.

La respuesta es que titleTextColorestá disponible en styles.xml si está anulando algo que hereda Widget.AppCompat.Toolbar. Hoy creo que se supone que la mejor opción es 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>

Y en el tema de su aplicación, especifique el estilo de la barra de herramientas:

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

Ahora puede dejar el xml donde especifica la barra de herramientas sin cambios. Durante mucho tiempo pensé que cambiar la android:textColorapariencia del texto del título de la barra de herramientas debería funcionar, pero por alguna razón no es así.

Daniel Wilson
fuente
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
fuente
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);
}

}

O uso simple de 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>
Característica del coeficiente intelectual
fuente
Si bien este código puede responder la pregunta, sería mejor incluir algo de contexto , explicando cómo funciona y cuándo usarlo. Las respuestas de solo código no son útiles a largo plazo.
Aditi Rawat
0

Hazlo con toolbar.setTitleTextAppearance(context, R.style.TitleTextStyle);

// este es el estilo en el que puedes personalizar tu combinación de colores

 <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>
shaby
fuente
0

Muy simple, esto funcionó para mí (título e ícono en blanco):

    <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
fuente
0

Con la biblioteca de componentes de materiales puede utilizar el app:titleTextColoratributo.

En el diseño puedes usar algo como:

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

También puede utilizar un estilo personalizado :

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

con (ampliando el Widget.MaterialComponents.Toolbar.Primaryestilo):

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

o (ampliando el Widget.MaterialComponents.Toolbarestilo):

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

ingrese la descripción de la imagen aquí

También puede anular el color definido por el estilo usando el android:themeatributo (usando el Widget.MaterialComponents.Toolbar.Primaryestilo):

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

con:

  <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>

ingrese la descripción de la imagen aquí

o (usando el Widget.MaterialComponents.Toolbarestilo):

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

con:

  <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
fuente