我偶然发现了一些奇怪的东西。我在应用程序的多个位置中使用了相同的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
生成,在底部,阴影是当CardView
在ScrollView
内部。如您所见,第二个看起来更暗更浓。
注意:两种情况下的背景色(#FAFAFA)相同。
答案 0 :(得分:0)
对于这两种情况,我都会检查以下属性,因为这可能会导致您所看到的差异:
getTranslationZ()
getElevation()
getOutlineAmbientShadowColor()
(仅在API 28+中有效)getOutlineSpotShadowColor()
(仅在API 28+中有效)此外,检查布局检查器是否有可能影响渲染的视图。
此外,塞巴斯蒂亚诺·波吉(Sebastiano Poggi)的this article可能会有所帮助。