如何使用主题和 Theme.AppCompat.DayNight 更改操作栏中的文本颜色

Posted

技术标签:

【中文标题】如何使用主题和 Theme.AppCompat.DayNight 更改操作栏中的文本颜色【英文标题】:How to change text color in Action bar using theme and Theme.AppCompat.DayNight 【发布时间】:2021-10-21 17:21:33 【问题描述】:

我正在尝试使用主题更改默认操作栏中文本的文本颜色。我可以轻松更改状态栏的背景,但无论我做什么,操作栏中的文本都保持不变:

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.MyAapp" parent="Theme.AppCompat.DayNight">
    <!-- Primary brand color. -->

    <item name="colorPrimary">@color/ocean</item>
    <item name="colorPrimaryVariant">@color/light_ocean</item>
    <item name="colorOnPrimary">@color/white</item>
    <!-- Secondary brand color. -->
    <item name="colorSecondary">@color/ocean</item>
    <item name="colorSecondaryVariant">@color/dark_ocean</item>
    <item name="colorOnSecondary">@color/ocean</item>
    <!-- Status bar color. -->
    <!-- Status bar color. -->
    <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
    <!-- Customize your theme here. -->
</style>

是否可以在 Theme.AppCompat.DayNight 中覆盖它?我需要使用这个主题。感谢您的帮助。

【问题讨论】:

【参考方案1】:
    <!-- Base application theme. -->
    <style name="Theme.MyAapp" parent="Theme.AppCompat.DayNight">
        <!-- Primary brand color. -->

        <item name="colorPrimary">@color/ocean</item>
        <item name="colorPrimaryVariant">@color/light_ocean</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/ocean</item>
        <item name="colorSecondaryVariant">@color/dark_ocean</item>
        <item name="colorOnSecondary">@color/ocean</item>
        <!-- Status bar color. -->
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->

        <item name="android:actionBarStyle">@style/ThemeOverlay.MaterialComponents.ActionBar</item>
    </style>

    <style name="hemeOverlay.MaterialComponents.ActionBar"  parent="ThemeOverlay.MaterialComponents.Dark.ActionBar">
        <item name="android:textColor">@color/black</item>
    </style>

【讨论】:

当第一个选项不起作用时,我一定会使用它。谢谢。【参考方案2】:

您好,这是给您的地图。如果你没有其中一些,你必须定义它

【讨论】:

如此简单,如此令人敬畏。谢谢。 很高兴帮助@Konard!

以上是关于如何使用主题和 Theme.AppCompat.DayNight 更改操作栏中的文本颜色的主要内容,如果未能解决你的问题,请参考以下文章

XP如何更换主题

如何使用 CSS 和 JavaScript 制作可变主题

如何配置Kafka RPC调用者主题和组

当用户使用颤振键入一些文本时,如何解析和替换一个单词作为主题标签链接?

如何在 Storybook 6.0 中自定义深色和浅色主题

如何使用 angular5 和 angular 材质创建自定义颜色主题