3

我想在 Android Lollipop 中提升的 CardView 中有一个 RelativeLayout,但未显示高度(未显示阴影):

在此处输入图像描述

我的布局文件:

<?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) 使用模拟器对其进行测试。

4

5 回答 5

10

在您需要的xml的根布局中

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

下面是cardview的代码

card_view:cardElevation="5dp"
于 2015-05-22T09:44:31.247 回答
5

阴影没有显示,因为它们是在 RelativeLayout 的边界之外绘制的,并且视图被剪辑到它的边界。

添加android:clipChildren="false"到您的 RelativeLayout 的父级或向您的视图添加少量填充并设置android:clipToPadding="false"

于 2014-12-17T16:39:14.400 回答
1

我注意到同样的问题并且没有显示海拔,因为线:

android:layout_below="@+id/...."

通常,这是因为阴影是在可见范围之外绘制的。

于 2015-04-15T13:38:41.930 回答
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" />
于 2014-12-18T07:32:55.287 回答
0

消除

android:hardwareAccelerated="false" from manifest
于 2017-05-25T06:09:17.427 回答