我在CardView中有一个RelativeLayout,我想在Android Lollipop中提升但是没有显示高程(阴影没有显示):
我的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android.support.v7.cardview="http://schemas.android.com/apk/res-auto"
style="@style/CardViewStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="5dp"
android:orientation="horizontal"
android.support.v7.cardview:cardElevation="5dp">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_selector"
android:paddingBottom="5dp">
<ImageView
android:id="@+id/article_thumb"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/article_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/article_thumb"
android:layout_marginEnd="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginStart="10dp"
android:ellipsize="middle"
android:linksClickable="false"
android:longClickable="false"
android:text="@string/title"
android:textAppearance="@style/TextAppearance.AppCompat.Title"
android:textColor="@color/black" />
<TextView
android:id="@+id/article_date"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/article_title"
android:layout_alignStart="@+id/article_title"
android:layout_below="@+id/article_title"
android:layout_marginTop="10dp"
android:text="@string/date"
android:textAppearance="@style/TextAppearance.AppCompat.Light.Widget.PopupMenu.Small"
android:textColor="@color/gray" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/article_title"
android:layout_alignRight="@+id/article_title"
android:layout_below="@+id/article_title"
android:layout_marginTop="10dp"
android:elevation="30dp"
android:translationZ="30dp">
<ImageView
android:id="@+id/redbubble"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop"
android:src="@drawable/redbubble" />
<TextView
android:id="@+id/article_comment_bubble"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="@color/white" />
</RelativeLayout>
</RelativeLayout>
因此,在这个布局中,我将这两行添加到RelativeLayout以进行提升:
android:elevation="30dp"
android:translationZ="30dp"
任何人都知道为什么没有显示?目前我使用Android API 21(Lollipop)使用模拟器进行测试。
答案 0 :(得分:7)
在xml的根布局中,您需要
xmlns:card_view="http://schemas.android.com/apk/res-auto"
下面是cardview的代码
card_view:cardElevation="5dp"
答案 1 :(得分:4)
阴影未显示,因为它们被绘制在RelativeLayout的边界之外,并且视图被克隆到其边界。
将android:clipChildren="false"
添加到RelativeLayout的父级,或在视图中添加少量填充并设置android:clipToPadding="false"
答案 2 :(得分:1)
您应该将 android:elevation 属性添加到redbubble imageview。 要查看元素的阴影,您必须将 android:elevation 添加到该视图。
我建议您将您的redbubble imageview更改为以下内容:
<ImageView
android:id="@+id/redbubble"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:contentDescription="@string/app_name"
android:scaleType="centerCrop"
android:elevation="2dp"
android:src="@drawable/redbubble" />
答案 3 :(得分:1)
我注意到同样的问题并且没有显示高程因为行:
机器人:layout_below =“@ + ID /...."
通常,这是因为阴影是在可见边界之外绘制的。
答案 4 :(得分:0)
删除
android:hardwareAccelerated="false" from manifest