Definindo elevação em XML no AppCompat CardView no Android 5.0




android-appcompat android-cardview (4)

Estou adicionando um atributo app: cardElevation = "8dp" no modo de exibição de cartão, então será como:

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        app:cardElevation="8dp"
        app:cardCornerRadius="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/kmp_warna1" />

    </android.support.v7.widget.CardView>

Espero que ajude

Pelo que entendi, no início da fase de visualização, parecia não haver maneira de definir a elevação no XML apenas no CardView sem hack no Java. Agora que o lançamento oficial foi lançado, existe alguma maneira de fazer isso em XML sem escrever código Java para definir a elevação?

Eu tentei card_view:cardElevation sem efeito. Eu pensava que quando estava usando os emuladores para o 5.0, tudo estava bem. Mas agora que estou usando a versão oficial no meu dispositivo atual, todos os meus CardView desapareceram

Pré pirulito, funciona muito bem.

Aqui está o meu xml completo

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:id="@+id/cv1"
    card_view:cardElevation="4dp"
    android:layout_margin="6dp"
    card_view:cardCornerRadius="3dp"
    android:layout_height="match_parent">

Isso me resolveu adicionando

xmlns: card_view = "http://schemas.android.com/apk/res-auto"

por exemplo:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    card_view:cardCornerRadius="5dp">

Se você tem esta linha

android:hardwareAccelerated="false"

na tag de aplicativo manifesto, suas sombras não foram exibidas. tente remover esta linha

ou use

android:hardwareAccelerated="true"

Isso funcionou para mim! Eu espero que funcione para você também :)


Você precisa usar o atributo cardElevation

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    card_view:cardElevation="4dp" />




android-elevation