CardView是在安卓5.0提出的卡片式控件
引用
compile 'com.android.support:cardview-v7:23.2.0'
Cardview继承自FrameLayout,所以子控件布局规则和FrameLayout的一样,这个FrameLayout特殊点就是有rounded corner(圆角)和shadow(阴影)
CardView的常用属性
属性 作用 card_view:cardElevation 阴影的大小 card_view:cardMaxElevation 阴影最大高度 card_view:cardBackgroundColor 卡片的背景色 card_view:cardCornerRadius 卡片的圆角大小 card_view:contentPadding 卡片内容于边距的间隔 card_view:contentPaddingBottom 卡片内容与底部的边距 card_view:contentPaddingTop 卡片内容与顶部的边距 card_view:contentPaddingLeft 卡片内容与左边的边距 card_view:contentPaddingRight 卡片内容与右边的边距 card_view:contentPaddingStart 卡片内容于边距的间隔起始 card_view:contentPaddingEnd 卡片内容于边距的间隔终止 card_view:cardUseCompatPadding 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式 card_view:cardPreventCornerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠
布局引用:
没有效果的布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
>
<android.support.v7.widget.CardView
android:id="@+id/cardview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:gravity="center"
card_view:cardBackgroundColor="@color/colorAccent"
card_view:contentPadding="8dp">
<TextView
android:id="@+id/card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="CardView Style"
android:textSize="100px"/>
</android.support.v7.widget.CardView>
</LinearLayout>
效果如下:
有效果的布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
>
<android.support.v7.widget.CardView
android:id="@+id/cardview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:gravity="center"
card_view:cardBackgroundColor="@color/colorAccent"
card_view:cardCornerRadius="20dp"
card_view:cardElevation="10dp"
card_view:contentPadding="8dp">
<TextView
android:id="@+id/card"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="CardView Style"
android:textSize="100px"/>
</android.support.v7.widget.CardView>
</LinearLayout>
效果如下:
通过上面的演示,我们发现CardView的卡片布局效果很不错,其可以用在ListView、RecyclerView等布局中。