📌  相关文章
📜  从哪个 android 版本开始 cardelevation 支持? (1)

📅  最后修改于: 2023-12-03 15:21:56.674000             🧑  作者: Mango

从哪个 Android 版本开始 Cardelevation 支持?

从 Android 5.0(API 级别 21)开始,CardView 通过添加“卡片高程”(CardElevation)属性来实现卡片的阴影效果。

什么是 CardElevation?

CardElevation 是一个用于为 CardView 添加阴影效果的属性。它定义了 CardView 相对于其周围的阴影高度。较大的值表示更强的阴影效果,而较小的值表示更轻微的效果。CardElevation 可以与 ViewCompat.setElevation() 方法一起使用,用于设置视图的高程值。

如何使用 CardElevation?

要为 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 值

您可以通过编程方式更改 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,以防止阴影被裁剪。