Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当我使用Theme.MaterialComponents时,为什么所有东西都是紫色的?_Android_Android Theme_Material Components Android - Fatal编程技术网

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%错误的,问题是由其他原因造成的。