无法更改 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" />
我有这个风格:
<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" />