Android CardView简单使用

5,612 阅读2分钟

这是我参与 8 月更文挑战的第 31 天,活动详情查看: 8月更文挑战

背景

在项目中常常会有卡片式布局的需求, 同时也会伴随的着阴影、圆角等需求, 如果使用普通布局操作起来会非常麻烦, 这个时候就会使用到google官方提供的CardView控件.本篇就简单介绍CardView控件的使用和基本属性

简介

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

效果

image.png

使用

添加依赖

implementation "androidx.cardview:cardview:1.0.0"

在页面布局中调用

在使用CardView控件时需要特别注意, CardView本身是继承了FrameLayout类, 所以在布局方式中和FrameLayout基本一致, 如果需要制作复杂布局, 建议再嵌套一个布局例如ConstraintLayout或者RelativeLayout

<androidx.cardview.widget.CardView
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:layout_width="match_parent"
    app:cardBackgroundColor="#919a91"
    app:contentPaddingTop="15dp"
    app:contentPaddingLeft="20dp"
    app:contentPaddingRight="25dp"
    app:contentPaddingBottom="15dp"
    app:cardCornerRadius="10dp"
    app:cardElevation="6dp"
    app:cardMaxElevation="10dp"
    android:layout_height="200dp">
    <TextView
        android:layout_width="wrap_content"
        android:text="这是一个测试文本"
        android:layout_height="wrap_content"/>
</androidx.cardview.widget.CardView>

基本属性

app:cardCornerRadius 设置CardView圆角
app:cardElevation 设置CardView阴影
app:cardMaxElevation设置CardView最大阴影
app:cardBackgroundColor 设置CardView背景色 app:cardUseCompatPadding 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式
app:cardPreventCornerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠
app:contentPadding 设置卡片内容到四周的边距
app:contentPaddingLeft 设置卡片内容到左边的边距
app:contentPaddingRight 设置卡片内容到右边的边距
app:contentPaddingTop 设置卡片内容到顶部的边距
app:contentPaddingBottom 设置卡片内容到底部的边距
android:minWidth 设置卡片的最小宽度
android:minHeight 设置卡片的最小高度