2014-12-07 15 views
34

ich habe:Wie wird ein CardView-Attribut in einen Stil eingefügt?

in einer Datei build.gradle (Abhängigkeiten)

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

in einer Datei styles.xml (Stile Definition)

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

Aber Compiler beschwert:

Fehler: Keine Ressource gefunden, die mit dem angegebenen Namen übereinstimmt: attr 'card_view: cardCornerRadius'.

Wie füge ich einige cardView-Attribute in einem Stil hinzu?

+0

Hat meine Antwort wie erwartet? – mklimek

+0

Ja, es sollte mich als die angenommene Antwort markieren. –

Antwort

85

Set parent Attribut zu CardView. Sie müssen nicht einmal xmlns:card_view="http://schemas.android.com/apk/res-auto" hinzufügen.

Arbeits Code-Snippet:

<style name="CardViewStyle" parent="CardView"> 
    <item name="cardCornerRadius">4dp</item> 
    <item name="cardElevation">4dp</item> 
</style> 
+6

Funktioniert nicht für mich ....ob Xmlns hinzugefügt wird oder nicht – VsMaX

+12

VSMAX stellen Sie sicher, tust 4DP nicht 4DP ecirish

8

Hinzufügen Antwort des mklimek, Sie brauchen nicht einmal die Eltern = "CardView"

einfach vermeiden, dass die cardView hinzuzufügen: Präfix

So statt

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

verwenden nur

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

Also mein kompletter Stil-Code hierfür lautet:

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

das ist es. Vermeiden Sie das Präfix und Sie sind gut zu gehen. – dorsz

6

Dieser Fehler kann auftreten, wenn Sie in Ihrer gradle Abhängigkeit CardView nicht (in Android Studio) für die Modul Stil enthält (obwohl Sie die Abhängigkeit in dem Modul haben, in dem Sie die Kartenansicht verwenden). In diesem Fall fügen Sie einfach

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

(oder eine andere Version) zu build.gradle für das Modul enthält themes.xml oder styles.xml.

Dann brauchen Sie nicht ein Elternteil auf Ihrem Stil zu setzen, noch benötigen Sie ein Namespacepräfix, kann aber das Beispiel in tsik Antwort folgen, so alles, was Sie brauchen, ist

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

Dieser Code Arbeit gut

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

Hinweis: parent = "CardView"

Verwandte Themen