Подтвердить что ты не робот

Как поместить атрибут 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 в стиле?

4b9b3361

Ответ 1

Установите атрибут 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>

Ответ 2

Чтобы добавить к 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>

Ответ 3

Эта ошибка может возникнуть, если у вас нет CardView в зависимостях gradle (в Android Studio) для модуля, содержащего ваш стиль (даже если у вас есть зависимость в модуле, где вы используете вид карты). В этом случае просто добавьте

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

(или другая версия) до build.gradle для модуля, содержащего theme.xml или styles.xml.

Затем вам не нужно устанавливать родительский стиль в свой стиль и вам не нужен префикс пространства имен, но он может следовать примеру в ответе tsik, поэтому все, что вам нужно, это

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

Ответ 4

Этот код хорошо работает

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