CardView使用详解

1.简介:

Android5.0出现的,继承自FrameLayout,可以当成FrameLayout来使用,可以设置其圆角和阴影效果,不用再去写shape来实现圆角了;

2.使用 Gradle 依赖

compile 'com.android.support:cardview-v7:23.2.0'

3.布局

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    //对应下面的app
    xmlns:app="http://schemas.android.com/apk/res-auto"

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        //更布局声明的命名空间:app
        app:cardBackgroundColor="@color/colorAccent"
        app:cardCornerRadius="10dp"
        app:cardElevation="5dp"
        app:cardPreventCornerOverlap="true"
        app:contentPadding="15dp"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="我在cardview里面"
                android:textColor="@android:color/white"
                />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="我也在cardview里面"
                android:layout_marginTop="10dp"
                android:textColor="@android:color/white"
                />
        </LinearLayout>
    </android.support.v7.widget.CardView>

</LinearLayout>

4.属性介绍


属性  作用
card_view:cardElevation         阴影高度(cardview边缘向外扩散的阴影高度)

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:cardPreventConrerOverlapV20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠

5.添加波纹点击效果
默认情况,CardView是不可点击的,并且没有任何的触摸反馈效果。
为了实现触摸反馈效果,你必须提供一下属性:

android:clickable="true"
android:foreground="?android:attr/selectableItemBackground"

 <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:cardBackgroundColor="@color/colorAccent"
        app:cardCornerRadius="10dp"
        app:cardElevation="5dp"
        app:cardPreventCornerOverlap="true"
        app:contentPadding="15dp"

        android:clickable="true"
        android:foreground="?android:attr/selectableItemBackground"
        >

添加上面两行代码后实现的效果:

5.0版本以及更高版本可以使CardView点击产生波纹的效果,由触摸点向外扩散;
5.0版本以下有一个触摸阴影效果;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值