3.当RecyclerView遇上CardView
CardView继承自Framelayout,所以FrameLayout所有属性CardView均可以直接拿来用,不过CardView还有自己独有的属性。下面我们将item布局的父标签换成CardView。并且用RelativeLayout包裹两个子控件。代码如下:
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="5dp"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/lyj_image" android:layout_width="wrap_content" android:layout_centerInParent="true" android:layout_marginRight="5dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/lyj_txt" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/lyj_image" android:layout_marginTop="40dp" /> </RelativeLayout> </android.support.v7.widget.CardView>
运行效果图如下:
其每个item变成了一个卡片的样式,如果色彩搭配的好,那么界面将如上线的APP一样酷炫。
下面来介绍CardView独有的属性:
app:cardElevation 阴影的大小
app:cardMaxElevation 阴影最大高度
app:cardBackgroundColor 卡片的背景色
app:cardCornerRadius 卡片的圆角大小
app:contentPadding 卡片内容于边距的间隔◦card_view:contentPaddingBottom
app:contentPaddingTop
app:contentPaddingLeft
app:contentPaddingRight
app:contentPaddingStart
app:contentPaddingEnd
app:cardUseCompatPadding 设置内边距,V21+的版本和之前的版本仍旧具有一样的计算方式
app:cardPreventConrerOverlap 在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠
下面简单设置几个属性:
app:cardBackgroundColor="#EEC900":卡片背景为黄色。
app:cardCornerRadius="10dp":卡片圆角半径为10dp。
app:cardPreventCornerOverlap="true":防止内容与边角重叠
app:cardUseCompatPadding="true":设置边距
app:contentPadding="10dp":边距的间隔大小为10dp
运行一下效果图如下所示: