2014-12-07 22 views
34

tôi có:Làm cách nào để đặt thuộc tính CardView theo kiểu?

trong một file build.gradle (phụ thuộc)

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

trong một file styles.xml (phong cách định nghĩa)

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

Nhưng biên dịch phàn nàn:

Lỗi: Không tài nguyên được tìm thấy khớp với tên đã cho: attr 'card_view: cardCornerRadius'.

Làm thế nào để thêm một số cardView thuộc tính trong một phong cách?

+0

Liệu việc trả lời của tôi như mong đợi? – mklimek

+0

Có, Tôi nên đánh dấu là câu trả lời được chấp nhận. –

Trả lời

85

Set parent thuộc tính để CardView.
Bạn thậm chí không cần phải thêm xmlns:card_view="http://schemas.android.com/apk/res-auto".

đoạn làm việc của mã:

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

Không hiệu quả với tôi ....dù xmlns được thêm vào hay không – VsMaX

+12

VsMax chắc chắn rằng bạn đang làm 4dp không 4dp ecirish

8

Để thêm vào của mklimek câu trả lời, bạn thậm chí không cần phải thêm phụ huynh = "CardView"

Chỉ cần tránh cardView: prefix

Vì vậy, thay vì

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

chỉ cần sử dụng

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

Vì vậy, mã phong cách hoàn chỉnh của tôi cho điều này là:

<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

này là nó. Tránh tiền tố và bạn tốt để đi. – dorsz

6

Lỗi này có thể xảy ra nếu bạn không có CardView trong phụ thuộc gradle của bạn (trong Android Studio) cho các mô-đun chứa phong cách của bạn (mặc dù bạn có phụ thuộc trong mô-đun nơi bạn sử dụng chế độ xem thẻ). Trong trường hợp đó, chỉ cần thêm

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

(hoặc phiên bản khác) để build.gradle cho các mô-đun chứa themes.xml hoặc styles.xml.

Sau đó, bạn không cần phải thiết lập một mẹ trên phong cách của bạn, cũng không làm bạn cần một tiền tố namespace, nhưng có thể làm theo ví dụ trong câu trả lời tsik, vì vậy tất cả các bạn cần là

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

việc mã này cũng

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

Lưu ý: mẹ = "CardView"

Các vấn đề liên quan