6

我正在实施对暗模式的支持。但是在我将 Theme parent 更改为Theme.AppCompat.DayNight后,Action Bar 中的文本为黑色(白天模式下为黑色,深色模式下为白色)。我希望文本始终是白色的。我试图更改styles.xml 中的文本颜色(值和值-夜)

<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 中的标题文本颜色仍然是黑色。

4

3 回答 3

11

在您的主题中使用 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>

如果你使用ToolbarAPI,你也可以使用

 <Toolbar
   app:titleTextColor="@color/...."
   ../>

Toolbar相反,您可以使用Material Components Library 和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>    
于 2019-11-01T18:58:24.080 回答
4

最好和最简单的解决方案是@MagogCZ 的回答 =>

“为我工作<style name="AppTheme" parent="Theme.AppCompat.DayNight.DarkActionBar"> – MagogCZ

于 2020-08-25T19:13:19.143 回答
0

需要使用actionBarTheme而不是actionBarStyle用于文本颜色

于 2021-05-13T15:05:02.817 回答