无论我在该主题上做了多少阅读,我似乎都无法获得想要的东西-但是我想要的东西很简单。
我正在基于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似乎特别困难。
答案 0 :(得分:0)
我最终设法使它开始工作。我必须使用选择器。我在下面提供了解决方案。
<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>