📅  最后修改于: 2023-12-03 15:21:56.674000             🧑  作者: Mango
从 Android 5.0(API 级别 21)开始,CardView 通过添加“卡片高程”(CardElevation)属性来实现卡片的阴影效果。
CardElevation 是一个用于为 CardView 添加阴影效果的属性。它定义了 CardView 相对于其周围的阴影高度。较大的值表示更强的阴影效果,而较小的值表示更轻微的效果。CardElevation 可以与 ViewCompat.setElevation() 方法一起使用,用于设置视图的高程值。
要为 CardView 添加阴影效果,只需在布局文件中添加以下属性:
<androidx.cardview.widget.CardView
android:id="@+id/my_cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cardElevation="8dp">
<!-- card content -->
</androidx.cardview.widget.CardView>
这将在 CardView 中创建 8dp 的卡片高程值。
您可以通过编程方式更改 CardElevation 值,如下所示:
CardView myCardView = findViewById(R.id.my_cardview);
ViewCompat.setElevation(myCardView, 16f); // 设置 16dp 的卡片高程值
请注意,为了实现 CardView 的阴影效果,必须将其父级 ViewGroup 的 clipToPadding 属性设置为 false。否则,阴影可能会被裁剪并无法显示。
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false">
<androidx.cardview.widget.CardView
android:id="@+id/my_cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:cardElevation="8dp">
<!-- card content -->
</androidx.cardview.widget.CardView>
</FrameLayout>
从 Android 5.0 开始,CardView 通过添加 CardElevation 属性来支持卡片阴影效果。您可以在布局文件中或编程方式中设置 CardElevation 值。但是,请注意将父级 ViewGroup 的 clipToPadding 属性设置为 false,以防止阴影被裁剪。