Задать вопрос
emptinessandform
@emptinessandform

Почему нет тени в CardView c заданым свойством card_view:cardElevation?

Прочитал несколько статей, как сделать эффект Elevation у карточки, но хоть убей не могу дойти, почему у меня нет тени под карточкой, а во всех примерах есть.
Вот код контейнера:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical"
    tools:context="com.dimav.androidui.CardsActivity">

    <LinearLayout

        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <include
            layout="@layout/card_1" />
        <include
            layout="@layout/card_1" />
        <include
            layout="@layout/card_1" />
        <include
            layout="@layout/card_1" />


    </LinearLayout>
</ScrollView>

а вот сама карточка:
<?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:id="@+id/card_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="6dp"
    android:layout_marginStart="6dp"
    android:layout_marginTop="6dp"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">


    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:id="@+id/card_1_img"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:adjustViewBounds="true"
            android:background="#666666"
            android:contentDescription="@string/app_name"
            android:scaleType="fitCenter"
            android:src="@drawable/material_16_9_3" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/card_1_img"
            android:layout_alignStart="@id/card_1_img"
            android:paddingBottom="16dp"
            android:paddingStart="16dp"
            android:text="@string/lorem_2"
            android:textColor="#fff"
            android:textSize="24sp" />

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


И вот что получается:
5a97ee5b50105032028538.png
  • Вопрос задан
  • 3128 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 2
Привет! Все очень просто. Чтобы была видна тень - вокруг CardView должно быть свободное пространство. Следуя Material Design - оно должно равняться 8dp.
<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:id="@+id/card_1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="4dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="4dp"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp">

Удачи!
Ответ написан
Комментировать
TranE91
@TranE91
Senior Android Engineer
Попробуйте 2 лекарства:
1) В Android-Manifest android:hardwareAccelerated="true"
2) В layout:
card_view:cardUseCompatPadding="true"
card_view:cardElevation="4dp"
card_view:cardCornerRadius="3dp"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы