用 MDC 版本的组件来替换
<!-- Copyright 2020 Google LLC. SPDX-License-Identifier: Apache-2.0 --> -<androidx.cardview.widget.CardView +<com.google.android.material.card.MaterialCardView android:id="@+id/card" ...> ... -</androidx.cardview.widget.CardView> +</com.google.android.material.card.MaterialCardView> -<androidx.appcompat.widget.SwitchCompat +<com.google.android.material.switch.SwitchMaterial android:id="@+id/switch" ... /> 颜色MDC的颜色调色板直接从 Material Design color system 中绘制。
由于MDC-Android,AppCompat和框架之间共享历史记录,因此,颜色属性集包括以下内容:
框架中已适当命名的现有属性(例如android:colorBackground)
AppCompat中已适当命名的现有属性(例如colorPrimary和colorError)
新的属性由MDC介绍(如colorSurface,colorOnPrimary等)
MDC窗口小部件使用这些属性来为其背景,文本,图标等着色。要了解哪些小部件使用哪种颜色,需要检查源代码中的默认小部件样式。
AppCompat和框架中还存在一些颜色,但不再适用于此新系统。该Theme.MaterialComponents.*主题尽最大努力向后兼容他们,例如小部件,这些旧属性。
<item>?attr/colorSecondary</item>
但是,您应该考虑不推荐使用这些属性。使用更合适的MDC属性或逐步淘汰它们。
请参阅下面的颜色属性映射表:
注意 AppCompat 中的颜色属性就不要再使用了
AppCompat /框架颜色属性 MDC-Android颜色属性colorPrimary colorPrimary
colorPrimaryDark colorPrimaryVariant (android:statusBarColor明确指定)
不适用 colorOnPrimary
colorAccent colorSecondary
不适用 colorSecondaryVariant
不适用 colorOnSecondary
不适用 colorSurface
不适用 colorOnSurface
android:colorBackground android:colorBackground
不适用 colorOnBackground
colorError colorError
不适用 colorOnError
android:textColorPrimary,android:textColorSecondary等等。 N / A (建议将MDC设置为“ on”属性或使用默认值)
colorControlNormal,colorControlHighlight,colorControlActivated N / A (“接通”或ATTRS使用默认偏好MDC) 注意:这些仍然被用来着色,,和。
例子 <style parent="Theme.MaterialComponents.*"> ... <item>@color/navy_700</item> - <item>@color/navy_900</item> + <item>@color/navy_900</item> - <item>@color/green_300</item> + <item>@color/green_300</item> + <item name=”colorSecondaryVariant”>@color/green_500</item> + <item>@color/navy_900</item> </style>