55

我有:

在文件中build.gradle(依赖项)

dependencies {
    compile 'com.android.support:cardview-v7:21.0.+'
}

在文件中styles.xml(样式定义)

<resources
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto">

    <style name="CardViewStyle">
        <item name="android:layout_margin">5dip</item>
        <item name="card_view:cardCornerRadius">4dp</item>
        <item name="card_view:cardElevation">4dp</item>
    </style>
</resources>

但编译器抱怨:

错误:找不到与给定名称匹配的资源:attr 'card_view:cardCornerRadius'。

如何在样式中添加一些 cardView 属性?

4

4 回答 4

130

parent属性设置为CardView
您甚至不必添加xmlns:card_view="http://schemas.android.com/apk/res-auto".

工作代码片段:

<style name="CardViewStyle" parent="CardView">
     <item name="cardCornerRadius">4dp</item>
     <item name="cardElevation">4dp</item>
</style>
于 2014-12-07T11:07:07.457 回答
18

要添加到 mklimek 的答案,您甚至不需要添加 parent="CardView"

只需避免 cardView: 前缀

所以而不是

    <item name="cardView:cardElevation">5dp</item>

只需使用

    <item name="cardElevation">5dp</item>

所以我的完整样式代码是:

<style name="categoriesCardViewButtons">
    <item name="android:layout_width">80dp</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_marginLeft">10dp</item>
    <item name="cardCornerRadius">8dp</item>
    <item name="cardElevation">5dp</item>
    <item name="cardBackgroundColor">@color/grey_ultra_light</item>
    <item name="android:paddingBottom">@dimen/l1LayoutPaddingB</item>
</style>
于 2015-07-30T15:25:42.533 回答
5

如果您的 gradle 依赖项(在 Android Studio 中)中没有包含您的样式的模块的CardView (即使您在使用卡片视图的模块中有依赖项),则可能会发生此错误。在这种情况下,只需添加

compile 'com.android.support:cardview-v7:22.2.1'

(或其他版本)build.gradle用于包含主题.xml 或样式.xml 的模块。

然后,您不需要在样式上设置父级,也不需要命名空间前缀,但可以按照 tsik 答案中的示例进行操作,所以您只需要

<style name="myStyle">
    <item name="cardCornerRadius">8dp</item>
</style>
于 2015-09-08T08:17:54.580 回答
1

这段代码运行良好

<style name="MyCardView" parent="CardView">
    <item name="cardUseCompatPadding">true</item>
    <item name="cardCornerRadius">@dimen/hei_standard_8dp</item>
    <item name="cardBackgroundColor">@color/bg_item_list_alphabet</item>
</style>

注意:父=“CardView”

于 2017-08-07T06:31:19.243 回答