- 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"
- <span style="color:#FF0000;">card_view:cardCornerRadius="20dp"
- card_view:cardElevation="10dp"</span>
- 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等布局中。