others - 在 AppCompat 5.0上的CardView上的XML中,设置Elevation

从我所理解的,早在预览阶段,似乎没有办法在 CardView 中仅在没有 hack的上设置Elevation。 现在已经发布了官方版本,是否有任何方法可以在XML中执行这些操作,而不用编写Java代码?

我已经尝试过 card_view:cardElevation 。 我想当我在使用模拟器的时候,一切都很好。 但是现在我使用正式的版本在我的实际设备上,我的CardView 消失了

在Lollipop之前,效果很好。

这是我的完整 xml


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



时间:

它看起来像边距/填充问题,尝试将 cardUseCompatPadding 属性设置为 true 。 比如:


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


 android:layout_margin="6dp"


 card_view:cardUseCompatPadding="true"


 card_view:cardElevation="4dp"


 card_view:cardCornerRadius="3dp">



Android文档说明:

CardView添加额外的填充,在L 之前在平台上绘制阴影。

这可能导致卡在L 和之前有不同的大小。 如果需要与它的他视图对齐 CardView,可以能需要使用api版本特定的维度资源来考虑更改。 另外,可以将cardUseCompatPadding标志设置为 true,CardView将在平台L 和后面添加相同的填充值。

由于将cardUseCompatPadding标志设置为 true 会在UI中添加不必要的空白,因此默认值为 false 。

你必须使用 cardElevation 属性


<android.support.v7.widget.CardView


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


 card_view:cardElevation="4dp"/>



如果你有这一行


android:hardwareAccelerated="false"



在清单应用程序标记中,你的阴影未显示。 尝试删除此行

或者使用


android:hardwareAccelerated="true"



这对我来说是有效的, 我希望它也适合你。

通过添加它来解决

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

例如:


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



...