我刚刚开始在 material.io 官方网站上学习 Material 设计,我决定在一个新项目中尝试一下。我用一个空 Activity 创建了一个基本项目,添加了一个布局并添加了两个组件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.authentication.LoginActivity">
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RRRRRRRRR"/>
<com.google.android.material.textfield.TextInputEditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TTTTTTTT"/>
</LinearLayout>
没什么特别的。我的问题是上面的代码没有反射(reflect)我在我的主题中定义和实现的颜色,我似乎无法弄清楚为什么(我花了几个小时试图在互联网上找到正确的答案,以及material.io 的官方文档,但仍然没有)。这些是我的样式和颜色 xml 文件: 颜色
<!--?xml version="1.0" encoding="UTF-8"?-->
<resources>
<color name="colorPrimary">#880e4f</color>
<color name="colorPrimaryVariantLight">#bc477b</color>
<color name="colorPrimaryVariantDark">#560027</color>
<color name="colorSecondary">#006064</color>
<color name="colorSecondaryVariantLight">#428e92</color>
<color name="colorSecondaryVariantDark">#00363a</color>
<color name="colorOnPrimary">#ffffff</color>
<color name="colorOnSecondary">#ffffff</color>
<color name="colorError">#B00020</color>
<color name="colorOnError">#ffffff</color>
<color name="colorSurface">#ffffff</color>
<color name="colorOnSurface">#212121</color>
<color name="colorBackground">#ffffff</color>
<color name="colorOnBackground">#212121</color>
</resources>
样式
<resources>
<style name="MaterialTheme" parent="Theme.MaterialComponents">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryVariant">@color/colorPrimaryVariantDark</item>
<item name="colorOnPrimary">@color/colorOnPrimary</item>
<item name="colorSecondary">@color/colorSecondary</item>
<item name="colorSecondaryVariant">@color/colorSecondaryVariantDark</item>
<item name="colorOnSecondary">@color/colorOnSecondary</item>
<item name="colorError">@color/colorError</item>
<item name="colorOnError">@color/colorOnError</item>
<item name="colorSurface">@color/colorSurface</item>
<item name="colorOnSurface">@color/colorOnSurface</item>
<item name="android:colorBackground">@color/colorBackground</item>
<item name="colorOnBackground">@color/colorOnBackground</item>
</style>
</resources>
我几乎 100% 确定我只是遗漏了一些知识,但我似乎找不到问题的答案。我非常感谢您能为我提供的所有帮助。提前致谢。
最佳答案
您可以使用:
<style name="MaterialTheme" parent="Theme.MaterialComponents">
<!-- Used by TextView -->
<item name="android:textColorTertiary">@color/...</item>
<!-- Used by TextInputLayout -->
<item name="android:textColorPrimary">@color/colorAccent</item>
</style>
关于android - 为什么我的 Material 设计组件没有注册适当的颜色,如 material.io 网站上所述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343500/