CardView和RecyclerView一样是Android5.0以后新出现的控件,伴随着Material Design设计而诞生。
一、引入CardView
在AS新建项目中需要使用CardView组件,和RecyclerView一样,需要在Gradle里面提前加入CardView的
包,直接在Gradle中加入:
compile 'com.android.support:cardview-v7:25.3.1'(CardView版本号与项目里面V7版本号相同即可)
或者在Library dependence中输入CardView,选择V7包下那个即可。
二、为何使用CardView
CardView是继承自FramLayout的一个布局控件,官网里对CardView的注释为:
A FrameLayout with a rounded corner background and shadow.(CardView为带圆角和阴影的FramLayout)
以往,我们需要自定义Shape来实现圆角和阴影效果;现在,这些效果集成到了CardView的属性里。同时,
CardView应该被使用在显示层次性的内容时,在显示列表或网格时更应该被选择,因为这些边缘可以使得用户
更容易去区分这些内容。
三、CardView属性
app:cardBackgroundColor 设置背景颜色
app:cardCornerRadius 设置圆角大小
app:cardElevation 设置z轴阴影高度
app:cardMaxElevation 设置z轴最大高度值
app:contentPadding 内容与边距的间隔
app:contentPaddingLeft 内容与左边的间隔
app:contentPaddingTop 内容与顶部的间隔
app:contentPaddingRight 内容与右边的间隔
app:contentPaddingBottom 内容与底部的间隔
app:paddingStart 内容与边距的间隔起始
app:paddingEnd 内容与边距的间隔终止
app:cardUseCompatPadding 设置内边距,在API21及以上版本和之前的版本仍旧具有一样的计算方式
app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠
注意:CardView中使用android:background设置背景颜色无效。
Ps:多说一句,有时候部分人为了突出这些属性是在CardView中使用的,会在CardView内重新命名属性名,
如:xmlns:card_view="http://schemas.android.com/apk/res-auto",那么app就会变成card_view,但是
直接使用app不影响什么,只是一个属性前缀名的变化。
四、点击CardView出现波纹(Ripple)效果
在CardView布局中加入:android:foreground=”?android:attr/selectableItemBackground”即可实现
点击CardView出现波纹效果。
友情链接: