2014-12-07 12 views
34

ho:Come inserire un attributo CardView in uno stile?

in un file build.gradle (dipendenze)

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

in un file di styles.xml (definizione stili)

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

Ma compilatore si lamenta:

Errore: No risorsa trovata che corrisponde al nome dato: attr 'card_view: cardCornerRadius'.

Come aggiungere alcuni attributi cardView in uno stile?

+0

funziona il mio risposta come previsto? – mklimek

+0

Sì, dovrebbe essere contrassegnato come risposta accettata. –

risposta

85

Impostare l'attributo parent su CardView.
Non è nemmeno necessario aggiungere xmlns:card_view="http://schemas.android.com/apk/res-auto".

lavoro frammento di codice:

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

Non funziona per me ....se si aggiunge xmlns o no – VsMaX

+12

VsMax assicurarsi che si sta facendo 4DP non 4DP ecirish

8

Per aggiungere la risposta di per mklimek, non c'è nemmeno bisogno di aggiungere il genitore = "CardView"

Basta evitare il CardView: prefisso

Così invece di

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

basta usare

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

Quindi il mio codice di stile completo per questo è:

<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

è questo. Evita il prefisso e sei a posto. – dorsz

6

Questo errore può verificarsi se non si dispone di CardView nelle vostre dipendenze Gradle (in Android Studio) per il modulo che contiene il vostro stile (anche se si ha la dipendenza dal modulo in cui si utilizza la vista della scheda). In tal caso, è sufficiente aggiungere

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

(o un'altra versione) per build.gradle per il modulo contenente themes.xml o styles.xml.

Quindi, non è necessario impostare un genitore sul vostro stile, né è necessario un prefisso dello spazio dei nomi, ma si può seguire l'esempio di risposta di tsik, quindi tutto ciò che serve è

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

Questo lavoro di codice ben

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

Nota: parent = "CardView"

Problemi correlati