android - 为什么我的 Material 设计组件没有注册适当的颜色,如 material.io 网站上所述?

标签 android android-layout material-design material-components material-components-android

我刚刚开始在 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% 确定我只是遗漏了一些知识,但我似乎找不到问题的答案。我非常感谢您能为我提供的所有帮助。提前致谢。

以下是我的布局和预览的屏幕(全白)。 enter image description here

最佳答案

您可以使用:

<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>

enter image description here enter image description here

关于android - 为什么我的 Material 设计组件没有注册适当的颜色,如 material.io 网站上所述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58343500/

相关文章:

android - 如何将datePicker的值设置到EditText中?

android - 如何在Android首选项中正确接收和存储本地目录/路径?

android - 复制粘贴在 android 2.3.6 (Gingerbread) 中不起作用

android - 我的 Android 应用程序如何在多种屏幕分辨率的设备上运行?

html - 设置 MUI 选择宽度?

android - Material 成分确认对话框

android - 使用卡片 View 时无法获得精确的圆形

Android Intent.createChooser 不适用于 Intent.ACTION_SEND

android - Microsoft OData 客户端 Xamarin 不工作

android - 选择图像时 onActivityResult() 返回 Activity 的第一个 fragment