Тень карты не появляется в устройствах с леденец?

Я использую карту в своем приложении для Android. Однако тень не отображается. Вот макет xml

Значок defaultmenu по умолчанию также не отображается.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ECEDF0"
    android:orientation="vertical" >

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clipChildren="false"
        card_view:cardBackgroundColor="@color/white"
        card_view:cardCornerRadius="4dp"
        card_view:cardElevation="14dp"
        card_view:cardUseCompatPadding="true" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:text="Google Play" />
    </android.support.v7.widget.CardView>

</LinearLayout>

Refer the attachment

Ответ 1

После просмотра документов снова я нашел решение.

Просто добавьте card_view:cardUseCompatPadding="true" к вашему CardView, и тени появятся на устройствах Lollipop.

Что происходит, область содержимого в CardView принимает разные размеры на устройствах с предварительным леоптипом и леденцом. Таким образом, в устройствах с леденец тень на самом деле покрыта картой, поэтому ее не видно. Добавляя этот атрибут, область содержимого остается неизменной для всех устройств, и тень становится видимой.

Мой xml-код похож:

<android.support.v7.widget.CardView
    android:id="@+id/media_card_view"
    android:layout_width="match_parent"
    android:layout_height="130dp"
    card_view:cardBackgroundColor="@android:color/white"
    card_view:cardElevation="2sp"
    card_view:cardUseCompatPadding="true"
    >
...
</android.support.v7.widget.CardView>

Ответ 3

Для Lollipop и выше вы должны добавить некоторые поля на карту:

<android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            />

Поскольку тень лежит вне фактического представления

Ответ 4

для кого-то,

еще одна вещь, о которой вы должны знать, тени не будут отображаться, если у вас есть эта строка в манифесте:

Android: hardwareAccelerated = "ложь"

Я пробовал все предлагаемые материалы, но это работало только для меня, когда я удалял строку, причина, по которой у меня была строка, потому что мое приложение работает с несколькими растровыми изображениями, и они вызывают повреждение приложения.

Ответ 5

Попробуйте установить android: hardwareAccelerated = "false" Файл androidManifest может решить вашу проблему, потому что я также столкнулся с той же проблемой и решил, добавив 1 строку только в манифест.