Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何减少android中项目下方回收器视图中的修复阴影效果_Android_Android Recyclerview - Fatal编程技术网

如何减少android中项目下方回收器视图中的修复阴影效果

如何减少android中项目下方回收器视图中的修复阴影效果,android,android-recyclerview,Android,Android Recyclerview,这是我的图像,我使用卡片视图在recyclerview视图中显示项目。下面是xml <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" andr

这是我的图像,我使用卡片视图在recyclerview视图中显示项目。下面是xml

<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">   
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    <TextView
        android:id="@+id/cardTicketName"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="Here will be the text"
        android:textColor="#484848"
        android:padding="20dp"
        android:textSize="15dp" />
    </LinearLayout>
</android.support.v7.widget.CardView>

下面的项目底部阴影比顶部阴影更多,同样的问题也发生在我们将顶部项目滚动到底部时,然后底部阴影增加,当再次滚动到顶部相同项目时,其阴影效果决定


如何解决此问题?

卡视图:cardElevation=“0dp”
添加到您的CardView

Android框架使用两个模拟光源的组合来创建阴影效果。其中之一是一般环境光,因此所有具有标高的物体都会在所有侧面投射一点阴影。然而,另一个是靠近屏幕顶部的模拟点光源

此点光源的位置意味着底部阴影始终大于顶部阴影。这也意味着屏幕底部附近的底部阴影始终大于屏幕顶部附近的底部阴影

无法禁用此行为。如果你想使用Android内置的立面/阴影框架,这就是它的工作原理

您可以通过自定义绘制或使用带有半透明黑色的渐变来模拟自己的阴影,但您会发现,这两种方法都比简单地接受阴影的工作方式和用户的期望要困难得多


我最近也遇到了同样的问题,这是我所说的默认行为。此外,还有一个更重要的问题

通常,不建议对抗系统行为。但如果需要,有一种简单的方法:

您可以使用“来自官方”(实际上是)作为视图的背景。它具有
shadowCompatibilityMode
属性-您可以将其设置为
MaterialShapeDrawable。SHADOW\u compatibility\u MODE\u始终
,它将绘制假阴影,而不是本机阴影。它可能是这样的:

materialShapedRavable()。应用{
shadowCompatibilityMode=MaterialShapedRavable.SHADOW\u Compatibility\u MODE\u始终//伪阴影而不是本机阴影
setShadowColor(shadowColor)//您还可以定义阴影颜色
标高=4F
paintStyle=Paint.Style.FILL
}

因此,您将拥有固定的阴影,无论您的视图在屏幕上的何处

否当我使用此选项时,阴影效果将变为remove@Anthony Fillion Maillet此问题是关于阴影和视图位置之间的关系