Android Material Design Android官方控件学习目录
CardView
- extends FrameLayout
- 卡片布局
- A FrameLayout with a rounded corner background and shadow
- 可以轻松设置圆角和阴影的符合MD风格的FrameLayout
导入cardview-v7库
'com.android.support:cardview-v7:26.1.0'
简单用法
<android.support.v7.widget.CardView
android:id="@+id/cardView"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp"
android:clickable="true"
android:foreground="?selectableItemBackground"
android:padding="40dp"
app:cardBackgroundColor="#cdcdcd"
app:cardCornerRadius="12dp"
app:cardElevation="8dp"
app:cardUseCompatPadding="false"
app:contentPadding="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@mipmap/timg" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:text="这是一只喵"
android:textColor="#fff"
/>
</android.support.v7.widget.CardView>
设置背景颜色
app:cardBackgroundColor="#cdcdcd"
android:background="@color/color_red_ff7369"//不起作用
设置圆角大小
app:cardCornerRadius="12dp"
这是设置z轴的阴影
app:cardElevation="8dp"
设置z轴的最大高度值
app:cardMaxElevation
是否使用CompatPadding v21+的版本和之前的版本使用一样的计算方式
app:cardUseCompatPadding="true"//默认false
是否在v20和之前的版本中添加内边距
app:cardPreventCornerOverlap
cardPreventCornerOverlap 默认为true 在v20和之前的版本中添加内边距,这个属性是为了防止卡片内容和边角的重叠,没有重叠就多了一条白边
设置Padding
android:padding="20dp"//不起作用
app:contentPadding //设置内容的padding
app:contentPaddingLeft //设置内容的左padding
app:contentPaddingTop //设置内容的上padding
app:contentPaddingRight //设置内容的右padding
app:contentPaddingBottom //设置内容的底padding
水波纹点击效果
android:foreground="?android:attr/selectableItemBackground"
通常作为RecyclerView的item布局
详细用法请看MaterialDesignWidget.CardViewActivity