继承后更改 ActionBar 文本颜色 Theme.AppCompat.DayNight
Change ActionBar text color after inheriting Theme.AppCompat.DayNight
我正在实现对深色模式的支持。但是在我将 Theme parent 更改为 Theme.AppCompat.DayNight 后,Action Bar 中的文本为黑色(白天模式为黑色,深色模式为白色)。我希望文本始终为白色。我尝试更改 styles.xml 中的文本颜色(值和 values-night)
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="android:titleTextStyle">@style/MyActionBarTitleTextStyle</item>
</style>
<style name="MyActionBarTitleTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
但它不起作用。 ActionBar 中的标题文本颜色仍然是黑色。
在您的主题中使用 ActionBar,您应该使用 actionBarStyle
属性:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<item name="actionBarStyle">@style/....</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="titleTextStyle">@style/...</item>
</style>
如果您正在使用 Toolbar
API,您还可以使用
<Toolbar
app:titleTextColor="@color/...."
../>
而不是 Material 组件库和 Toolbar
API 您可以使用:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="toolbarStyle">@style/my_Toolbar</item>
</style>
<style name=my_Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
<item name="titleTextColor">@color/...</item>
</style>
最好和最简单的解决方案是@MagogCZ 的回答=>
“适合我 <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
” – MagogCZ
文本颜色需要使用 actionBarTheme
而不是 actionBarStyle
我正在实现对深色模式的支持。但是在我将 Theme parent 更改为 Theme.AppCompat.DayNight 后,Action Bar 中的文本为黑色(白天模式为黑色,深色模式为白色)。我希望文本始终为白色。我尝试更改 styles.xml 中的文本颜色(值和 values-night)
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<item name="android:actionBarStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="android:titleTextStyle">@style/MyActionBarTitleTextStyle</item>
</style>
<style name="MyActionBarTitleTextStyle" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
但它不起作用。 ActionBar 中的标题文本颜色仍然是黑色。
在您的主题中使用 ActionBar,您应该使用 actionBarStyle
属性:
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<item name="actionBarStyle">@style/....</item>
</style>
<style name="MyActionBarStyle" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="titleTextStyle">@style/...</item>
</style>
如果您正在使用 Toolbar
API,您还可以使用
<Toolbar
app:titleTextColor="@color/...."
../>
而不是 Material 组件库和 Toolbar
API 您可以使用:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
<item name="toolbarStyle">@style/my_Toolbar</item>
</style>
<style name=my_Toolbar" parent="@style/Widget.MaterialComponents.Toolbar">
<item name="titleTextColor">@color/...</item>
</style>
最好和最简单的解决方案是@MagogCZ 的回答=>
“适合我 <style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
” – MagogCZ
文本颜色需要使用 actionBarTheme
而不是 actionBarStyle