Android 当我使用Theme.MaterialComponents时,为什么所有东西都是紫色的?
进入Android 当我使用Theme.MaterialComponents时,为什么所有东西都是紫色的?,android,android-theme,material-components-android,Android,Android Theme,Material Components Android,进入style.xml并执行以下操作后,状态栏、应用程序栏图标和警报对话框的正按钮和负按钮都从默认颜色变为紫色: <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar"> <item name="shapeAppearanceMediumComponent">@style/AppShapeAppearance.M
style.xml
并执行以下操作后,状态栏、应用程序栏图标和警报对话框的正按钮和负按钮都从默认颜色变为紫色:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="shapeAppearanceMediumComponent">@style/AppShapeAppearance.MediumComponent</item>
</style>
@style/AppShapeAppearance.MediumComponent
我以前有
主题.AppCompat
,我没有这个紫色的问题。如何将紫色从AppCompat
更改回其默认颜色?此处是指向材料网站的链接
在“使用颜色主题化系统”下
您将作为项目添加到主题中的这六个值决定了调色板,如果您在右侧看到已取消的颜色,则如果您查找数字,您将看到它们是紫色的。
AppCompat使用标准的3 colorPrimary、colorPrimaryDark和colorAccent。其中2个不用于材料组件
要开始,请将这些添加到主题中
<item name="colorPrimary">#5C9EAD</item>
<item name="colorPrimaryVarient">#326273</item>
<item name="colorOnPrimary">#FFFFFF</item>
<item name="colorSecondary">#E39774</item>
<item name="colorSecondaryVariant">#E39774</item>
<item name="colorOnSecondary">#EEEEEE</item>
#5C9EAD
#326273
#FFFFFF
#E39774
#E39774
#Eeeee
这些不应该是color
而不是item
并放在colors.xml
文件中吗?不,样式使用item
标记,就像您问题中的示例一样。但是,将它们声明为颜色资源可能也是一种好的做法。是的,当然可以使用color.xml,我认为这可能太深入了,因为您不知道为什么颜色会发生变化。(毫无疑问,这似乎超出了范围)您甚至可以更进一步,引用以允许颜色交换,允许以最小的努力添加多个主题。这是一个有点奇怪的问题。没有“默认”颜色,颜色由主题决定,因此您需要的是AppCompat
中的特定颜色。紫色是材质主题选择的“默认值”,它不是“问题”。那么,AppCompat
主题的颜色是什么?我以前没有包括任何类似@color/colorPrimary
的内容,所以我不完全确定颜色是什么。关于这方面有很多资源,这个问题是第一个搜索结果,似乎回答得很好:@HenryTwist这仍然没有解决我应该如何处理这些颜色以及如何恢复原始主题。“我必须使用材料主题TextInputLayout,否则应用程序会崩溃”,这是100%错误的,问题是由其他原因造成的。