无法更改 ActionBar 标题文本的颜色

Unable to change colour of ActionBar Title Text

我有这个风格:

<resources>

    <style name="ThemeTest.BaseTheme.Light" parent="@style/Theme.MaterialComponents.Light">

        <item name="android:actionBarStyle">@style/ThemeTest.Widget.ActionBar</item>
    </style>

    <style name="ThemeTest.Widget.ActionBar" parent="@style/Widget.MaterialComponents.ActionBar.Solid">

        <item name="android:titleTextStyle">@style/ThemeTest.Widget.ActionBar.Title</item>
    </style>

    <style name="ThemeTest.Widget.ActionBar.Title" parent="@style/TextAppearance.MaterialComponents.Headline6">

        <item name="android:textColor">@color/clear_white</item>
    </style>
</resources>

它应该以清晰的白色 (#ffffff) 显示操作栏标题文本(默认情况下我的应用程序的名称)。但它什么都不做。我看不出上面的风格和这个有什么区别:

<resources>

    <style name="ThemeTest.BaseTheme.Light" parent="@style/Theme.MaterialComponents.Light">

    </style>
</resources>

它们看起来完全相同(应用名称为黑色)。

我尝试了几种样式和小部件的组合,但似乎没有任何效果。

依赖是com.google.android.material:material:1.3.0-alpha01.

我错过了什么?

如果您使用的是 ActionBar,您可以使用:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
    <item name="actionBarTheme">@style/ThemeOverlay.Actionbar</item>
</style>

与:

<style name="ThemeOverlay.Actionbar" parent="ThemeOverlay.MaterialComponents.ActionBar.Surface" >
        <item name="android:textColorPrimary">@color/....</item>
</style>

解决方案 1: 更简单的替代解决方案可能是:

actionBar.setTitle(Html.fromHtml("<font color='#ffffff'>ActionBarTitle </font>"));

解决方案 2: 如果您在 XML 布局中使用工具栏,试试这个:

app:titleTextColor = "#FFFFFF" 
<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
    app:titleTextColor="@color/colorWhite" />