如何将一个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属性?

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> 

要添加到mklimek的答案,你甚至不需要添加父=“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> 

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

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

(或其他版本)为包含themes.xml或styles.xml的模块build.gradle

然后,你不需要在你的风格上设置父级,也不需要命名空间前缀,但可以按照tsik的答案中的例子,所以你只需要

 <style name="myStyle"> <item name="cardCornerRadius">8dp</item> </style> 

这段代码运行良好

 <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”