Тень карты не появляется в устройствах с леденец?
Я использую карту в своем приложении для 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>
Ответ 2
Как уже упоминалось, CardView не показывает Shadow в Android L
убедитесь, что вы рисуете свое представление, используя hardwareAccelerated = true
hardwareAccelerated = true
![введите описание изображения здесь]()
hardwareAccelerated = false
![hardwareAccelerated CardView]()
Подробнее см. Android Hardware Acceleration
Ответ 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 строку только в манифест.