如何将CardView属性放入样式中?

56
我有: 在一个名为 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>

但是编译器报错:

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

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


我的回答是否按预期工作? - klimat
4个回答

133

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>

14
VsMax 确保你正在使用<item name="cardCornerRadius">4dp</item>而不是<item name="card_view:cardCornerRadius">4dp</item> - ecirish

19

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

5

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

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

themes.xmlstyles.xml 所在的模块添加到 build.gradle 文件中,以便使用另一种版本。
这样,您无需在样式上设置父级,也不需要命名空间前缀,只需按照 tsik 的答案示例即可,所需内容如下:
<style name="myStyle">
    <item name="cardCornerRadius">8dp</item>
</style>

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>

注意:parent="CardView"

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