在ScrollView中时,Cardview阴影看起来有所不同

时间:2019-03-25 13:31:23

标签: android android-cardview android-scrollview android-elevation

我偶然发现了一些奇怪的东西。我在应用程序的多个位置中使用了相同的CardView组件,所有组件都具有相同的海拔高度(3dp),并且它们看起来都相同。但是,对于一种情况,我需要将CardView嵌入到ScrollView中。我没有更改CardView配置中的任何内容,但是阴影现在看起来有所不同。

这是我的布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:padding="16dp"
            android:scrollbars="none">

    <androidx.cardview.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clipChildren="false"
        android:clipToPadding="false"
        app:cardCornerRadius="8dp"
        app:cardElevation="3dp"
        app:cardUseCompatPadding="true">

        <!-- some other views-->

     </androidx.cardview.widget.CardView>
</ScrollView>

在下面的图片中,您可以在右侧看到CardView,在左侧看到两个阴影:在顶部,阴影单独由CardView生成,在底部,阴影是当CardViewScrollView内部。如您所见,第二个看起来更暗更浓。

注意:两种情况下的背景色(#FAFAFA)相同。

enter image description here

1 个答案:

答案 0 :(得分:0)

对于这两种情况,我都会检查以下属性,因为这可能会导致您所看到的差异:

  • getTranslationZ()
  • getElevation()
  • getOutlineAmbientShadowColor()(仅在API 28+中有效)
  • getOutlineSpotShadowColor()(仅在API 28+中有效)

此外,检查布局检查器是否有可能影响渲染的视图。

此外,塞巴斯蒂亚诺·波吉(Sebastiano Poggi)的this article可能会有所帮助。