MaterialCardview需要Theme.AppCompat主题。

10

我正在尝试测试新的Google Material组件技能。

但是现在我遇到了一个关于MaterialCardView的问题。

构建过程告诉我:

The style on this component requires your app theme to be Theme.AppCompat 
[..]
at com.google.android.material.card.MaterialCardView.<init>

有了这个线索,我将MaterialCardView中的style="@style/Theme.AppCompat"android:theme="@style/Theme.AppCompat"添加到我的Activity的清单中。

我还尝试将我的Activity更改为AppCompatActivity,但没有任何成功。

我也尝试了根据material.io文档设置样式,但是没有成功!

你有什么线索吗?

谢谢


你能分享一下你的解压代码吗? - kcraigie
1个回答

5
根据Material Components 1.2.1,您需要执行以下步骤:
  • 依赖于库implementation 'com.google.android.material:material:1.2.1'
  • 您需要使用compileSdkVersion 30
  • 您的Activity需要扩展AppCompatActivity(或使用AppCompatDelegate
  • 您必须使用Material Components主题

来源:https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md

最简单的入门方法是让您当前的主题扩展Theme.MaterialComponents.*.Bridge而不是Theme.AppCompat.*

此外,您还需要在主题中覆盖以下属性,否则卡片颜色将被破坏:broken

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar.Bridge">
    <item name="elevationOverlayEnabled">false</item>
</style>

不要在卡片上设置android:theme="@style/Theme.MaterialComponents",否则您将失去来自主题的颜色信息(主色、次色、强调色等),这会影响卡片内的所有小部件。
不要在卡片上设置style="@style/Theme.MaterialComponents不要混合使用主题和样式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接