我的目标是让一个列表项对点击和高程产生连锁反应。我知道为了拥有高程,目前要求你还要为视图的背景设置一个非透明的颜色,这样就会产生高程的阴影。
这是我用于列表项目的背景:
<?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
元素。
我还测试了将这个背景切换为纯白色,并给出了正确的高度阴影,所以我知道问题不是别的。
我需要添加什么才能显示高程?
答案 0 :(得分:0)
你的笔触颜色(@ color / border_color)是半透明的吗?我刚刚发现在将笔划更改为不具有透明度的颜色后,我失去的高度阴影回来了。
对于具有透明度的形状,不会显示高程,显然,即使您的实体不是半透明的,如果您的笔划是半透明的,它也不会起作用。
如果有任何类型的元素具有透明度,我不知道形状的高程是否总会失败,但可能就是这种情况。
答案 1 :(得分:-1)
如果您将CardView
作为RecyclerView
行的父视图组没有问题,则可以使用card_view:cardElevation
属性进行提升。
但它需要xmlns架构:
xmlns:card_view="http://schemas.android.com/apk/res-auto"
您必须包含它才能使用该属性。 :)