简介
在Android Material Design中,CardView是一个可以让应用程序的界面拥有更好的层次感的控件。它能够创建一个卡片式的界面,使其中的元素看起来更加连贯和统一。CardView拥有多种自定义属性,可以用来设置阴影、背景、圆角半径等等。
如何使用
首先,需要在build.gradle中引入依赖:
dependencies { implementation 'com.android.support:cardview-v7:28.0.0' }
在布局文件中,可以像这样使用CardView:
<androidx.cardview.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" app:cardCornerRadius="4dp" app:cardElevation="4dp"> <!-- CardView中的内容 --> </androidx.cardview.widget.CardView>
其中,cardCornerRadius
属性用来设置圆角半径,cardElevation
属性用来设置阴影高度。
在CardView中可以添加任何内容,如TextView、ImageView等等,也可以嵌套在其他布局中。需要注意的是,CardView本身并不会对内容进行任何样式设置,因此需要对内容进行样式设置。
自定义属性
CardView拥有多种自定义属性:
属性名 | 属性说明 |
---|---|
cardBackgroundColor | 卡片的背景颜色 |
cardCornerRadius | 卡片的圆角半径 |
cardElevation | 卡片的阴影高度 |
cardMaxElevation | 卡片的最大阴影高度 |
cardUseCompatPadding | 是否使用CompatPadding兼容性包添加填充 |
cardPreventCornerOverlap | 是否避免圆角重叠 |
contentPadding | 卡片内容的内边距 |
contentPaddingLeft | 卡片内容的左内边距 |
contentPaddingTop | 卡片内容的上内边距 |
contentPaddingRight | 卡片内容的右内边距 |
contentPaddingBottom | 卡片内容的下内边距 |
android:padding | 卡片的全局内边距,优先级低于contentPadding |
app:cardUseCompatPadding | 是否使用兼容性包的填充 |
app:cardPreventCornerOverlap | 是否避免圆角重叠 |
app:cardCornerRadius | 卡片的圆角半径,优先级高于android:radius |
app:cardElevation | 卡片的阴影高度 |
app:cardMaxElevation | 卡片的最大阴影高度 |
示例代码
下面是一个使用CardView的示例代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content"> <androidx.cardview.widget.CardView android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_marginBottom="10dp" app:cardCornerRadius="4dp" app:cardElevation="4dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:padding="16dp" android:orientation="horizontal"> <ImageView android:id="@+id/image_view" android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/ic_launcher"/> <TextView android:id="@+id/text_view" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:layout_marginLeft="16dp" android:text="CardView示例文本" android:textSize="16sp"/> </LinearLayout> </androidx.cardview.widget.CardView> </RelativeLayout>
效果如下:
总结
CardView是Android Material Design中的一个重要控件,能够为应用程序的UI提供更加具有层次感的卡片式界面。通过设置不同的属性,可以为CardView添加背景、圆角半径、阴影等样式。在使用时需要注意样式的细节和内容的自定义。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65a4fccaadd4f0e0ffd5d7ec