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

时间:2014-12-07 10:45:35

标签: android android-cardview

我有:

在文件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属性?

3 个答案:

答案 0 :(得分:113)

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>

答案 1 :(得分:16)

要添加到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>

答案 2 :(得分: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”