Android Ripple效果不显示高程

时间:2015-02-24 18:28:41

标签: android

我的目标是让一个列表项对点击和高程产生连锁反应。我知道为了拥有高程,目前要求你还要为视图的背景设置一个非透明的颜色,这样就会产生高程的阴影。

这是我用于列表项目的背景:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/ripple_color">

    <item>
        <shape android:shape="rectangle">

            <solid android:color="@android:color/white"/>

            <stroke android:color="@color/border_color"
                android:width="0.25dp"/>

        </shape>
    </item>

</ripple>

正如您所看到的,我将固体值设置为白色,并且在绘制视图时它具有白色背景。为确保使用此值,我将其更改为红色并将视图更改为红色背景,因此不会忽略solid元素。

我还测试了将这个背景切换为纯白色,并给出了正确的高度阴影,所以我知道问题不是别的。

我需要添加什么才能显示高程?

2 个答案:

答案 0 :(得分:0)

你的笔触颜色(@ color / border_color)是半透明的吗?我刚刚发现在将笔划更改为不具有透明度的颜色后,我失去的高度阴影回来了。

对于具有透明度的形状,不会显示高程,显然,即使您的实体不是半透明的,如果您的笔划是半透明的,它也不会起作用。

如果有任何类型的元素具有透明度,我不知道形状的高程是否总会失败,但可能就是这种情况。

答案 1 :(得分:-1)

如果您将CardView作为RecyclerView行的父视图组没有问题,则可以使用card_view:cardElevation属性进行提升。

但它需要xmlns架构:

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

您必须包含它才能使用该属性。 :)