这是我参与 8 月更文挑战的第 31 天,活动详情查看: 8月更文挑战
背景
在项目中常常会有卡片式布局的需求, 同时也会伴随的着阴影、圆角等需求, 如果使用普通布局操作起来会非常麻烦, 这个时候就会使用到google官方提供的CardView控件.本篇就简单介绍CardView控件的使用和基本属性
简介
应用通常需要在样式相似的容器中显示数据。这些容器通常在列表中用于保存每项的信息。借助系统提供的 CardView API,您可以轻松地在卡片内显示信息。这些卡片在整个平台都具有一致的外观,并且以默认高程位于所属视图组上方,因此系统会在其下方绘制阴影。卡片可用来轻松包含一组视图,同时为容器提供一致的样式。转载来自google官网
效果
使用
添加依赖
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
设置卡片的最小高度