创建卡片式布局

应用通常需要在具有相似样式的容器中显示数据。这些容器通常在列表中用于保存每项的信息。借助系统提供的 CardView API,您可以轻松地在卡片内显示信息。这些卡片在整个平台都具有一致外观,并且以默认高度位于所属视图组上方,因此系统会在其下方绘制阴影。卡片可用来轻松包含一组视图,同时为容器提供一致的样式。

图 1. 卡片示例

添加依赖项

CardView 微件是 v7 支持库 的一部分。要在项目中使用该微件,请将以下依赖项添加到应用模块的 build.gradle 文件中:

    dependencies {
        implementation 'com.android.support:cardview-v7:28.0.0'
    }
    

创建卡片

要使用 CardView,您需要将其添加到布局文件中。将其用作视图组以包含其他数据视图。在此示例中,CardView 包含一个 TextView 以向用户显示一些信息。

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        ... >
        <!-- A CardView that contains a TextView -->
        <android.support.v7.widget.CardView
            xmlns:card_view="http://schemas.android.com/apk/res-auto"
            android:id="@+id/card_view"
            android:layout_gravity="center"
            android:layout_width="200dp"
            android:layout_height="200dp"
            card_view:cardCornerRadius="4dp">

            <TextView
                android:id="@+id/info_text"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </android.support.v7.widget.CardView>
    </LinearLayout>
    

这些卡片会以默认高度绘制到屏幕上,这会导致系统在其下方绘制阴影。您可以使用 card_view:cardElevation 属性为卡片提供自定义高度。高度越高,绘制的阴影越明显,高度越低,阴影越淡。 CardView 在 Android 5.0(API 级别 21)及更高版本上使用实际高度和动态阴影,在早期版本上则回退到程序化阴影实现。

使用以下属性自定义 CardView 微件的外观:

  • 要在布局中设置角半径,请使用 card_view:cardCornerRadius 属性。
  • 要在代码中设置角半径,请使用 CardView.setRadius 方法。
  • 要设置卡片的背景颜色,请使用 card_view:cardBackgroundColor 属性。

如需了解详情,请参阅 CardView 的 API 参考文档。