更改材料零部件样式属性失败

时间:2018-10-04 20:23:45

标签: android android-theme material-components material-components-android

我正在尝试从Material Components Theme更改样式属性(例如const cardinalDictionary = { 'zero': 0, 'one': 1, ..., 'twenty', ..., 'hundred': 100, 'thousand': 1000, }; colorPrimaryVariant等),但出现以下错误:

colorOnSecondary

这是我的主题:

Android resource linking failed
Output:      C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3835: error: style attribute 'attr/colorPrimaryVariant (aka com.sample.app:attr/colorPrimaryVariant)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3836: error: style attribute 'attr/colorOnPrimary (aka com.sample.app:attr/colorOnPrimary)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3839: error: style attribute 'attr/colorSecondaryVariant (aka com.sample.app:attr/colorSecondaryVariant)' not found.
C:\...\app\build\intermediates\incremental\mergeDebugResources\merged.dir\values\values.xml:3840: error: style attribute 'attr/colorOnSecondary (aka com.sample.app:attr/colorOnSecondary)' not found.
error: failed linking references.

如果我不添加四个受影响的属性,则一切正常。我的minSdkVersion是16,compileSdkVersion和targetSdkVersion是28。我也尝试使用Bridge主题,但是遇到了同样的错误。我仔细检查了我的依赖关系,一切似乎都正确。我想念什么?

2 个答案:

答案 0 :(得分:19)

1.1.0 (当前为Alpha版)已解决了此问题:

implementation 'com.google.android.material:material:1.1.0-alpha05'

答案 1 :(得分:1)

我刚刚检查了the documentation和您使用的物品。似乎它仍未添加到Theme.MaterialComponents中,也不适用于该主题。

(也通过使用Theme.MaterialComponents也获得了“找不到错误”)

有趣的是,我认为它应该与parent="Theme.AppCompat"一起使用,因为他们说这是测试以了解其工作原理:

  

您也可以逐步测试新的材料组件而无需   更改您的应用主题这使您可以保留现有布局   外观和行为相同,同时将新组件引入   您的布局一次。

阅读: AppCompat Themes