web-dev-qa-db-fra.com

Comment mettre un attribut CardView dans un style?

J'ai:

dans un fichier build.gradle (dépendances)

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

dans un fichier styles.xml (définition des styles)

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

Mais le compilateur se plaint:

Erreur: aucune ressource trouvée correspondant au nom donné: attr 'card_view: cardCornerRadius'.

Comment ajouter des attributs cardView dans un style?

49

Définissez l'attribut parent sur CardView.
Vous n'avez même pas besoin d'ajouter xmlns:card_view="http://schemas.Android.com/apk/res-auto".

Extrait de code de travail:

<style name="CardViewStyle" parent="CardView">
     <item name="cardCornerRadius">4dp</item>
     <item name="cardElevation">4dp</item>
</style>
119
klimat

Pour ajouter à la réponse de mklimek, vous n'avez même pas besoin d'ajouter le parent = "CardView"

Évitez simplement le cardView: préfixe

Donc au lieu de

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

il suffit d'utiliser

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

Donc, mon code de style complet pour cela est:

<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>
17
tsik

Cette erreur peut se produire si vous n'avez pas CardView dans vos dépendances Gradle (dans Android Studio) pour le module contenant votre style (même si vous avez la dépendance dans le module dans lequel vous utilisez la vue carte). Dans ce cas, ajoutez simplement

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

(ou une autre version) à build.gradle pour le module contenant themes.xml ou styles.xml.

Ensuite, vous n'avez pas besoin de définir un parent sur votre style, ni un préfixe d'espace de noms, mais vous pouvez suivre l'exemple de la réponse de tsik, donc tout ce dont vous avez besoin est

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

Ce code fonctionne bien

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

Remarque: parent = "CardView"

1
Hai Rom