【问题标题】:Setting a global text colour and retaining the disabled button colour设置全局文本颜色并保留禁用的按钮颜色
【发布时间】:2019-07-20 07:52:15
【问题描述】:

无论我在这个主题上阅读多少,我似乎都无法得到我想要的东西——但我想要的却很简单。

我正在基于 AppCompat NoActionBar 将全局样式应用于我的应用程序。这会给出白色文本,我想将其更改为深色。这是我的styles.xml:

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorAccent">@color/colorSecondary</item>
    <item name="android:textColor">#ff4400</item>
</style>


<style name="ToolBarStyle" parent="Theme.AppCompat">
    <item name="android:textColorPrimary">@android:color/white</item>
    <item name="android:textColorSecondary">@android:color/white</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:background">@color/colorPrimary</item>
    <item name="colorControlNormal">@android:color/white</item>
</style>

这很好。文本颜色随处更改为深色(此处设置为红色,以便我可以看到发生了什么)。不幸的是,这也覆盖了按钮的所有文本颜色。禁用的按钮显示为深色,无法将它们与启用的按钮区分开来。我尝试将样式应用于按钮,但 textColor 总是会覆盖禁用的颜色。

我不知道如何继续。我不想在每个按钮上应用选择器,也不想通过在每个按钮上设置样式来单独为所有按钮着色。我想要一个整体的全局颜色变化——Android 似乎让这变得异常困难。

【问题讨论】:

    标签: android button text colors styles


    【解决方案1】:

    我最终设法让它工作。我不得不使用选择器。我在下面提供我的解决方案。

    <resources>
    
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorButtonNormal">@color/colorSecondary</item>
        <item name="android:textColorPrimary">@color/primary_text_color_selector</item>
        <item name="android:textColorSecondary">@color/secondary_text_color_selector</item>
        <item name="alertDialogTheme">@style/ThemeDialog</item>
    </style>
    
    <style name="ThemeDialog" parent="Theme.AppCompat.Light.Dialog.Alert">
        <item name="android:textColorPrimary">@color/primary_text_color_selector</item>
        <item name="android:background">@color/colorTertiary</item>
    </style>
    
    
    <style name="ToolBarStyle" parent="Theme.AppCompat">
        <item name="android:textColorPrimary">@android:color/white</item>
        <item name="android:textColorSecondary">@android:color/white</item>
        <item name="actionMenuTextColor">@android:color/white</item>
        <item name="android:background">@color/colorPrimary</item>
        <item name="colorControlNormal">@android:color/white</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 2013-08-30
      • 1970-01-01
      • 2011-11-23
      相关资源
      最近更新 更多