CardView

介绍

cardview 是一个design 的控件,为了让UI 更好看,其官网为:

属性

列举常用的属性及经常使用的场景;

  • cardCornerRadius 圆角大小
  • app:cardElevation 设置z轴的阴影高度(2-4dp 即可)
  • app:cardBackgroundColor 设置背景颜色 (BackgroundColor 没有用)
  • app:contentPadding 设置内容的padding
  • app:android:foreground 添加点击水波纹 (没有设置点击事件的话,就一定要设置android:clickable="true"属性,才能看到效果)
  • app:cardUseCompatPadding ——在Android 5.0及以上平台中,设置是否要添加padding,5.0以下默认添加padding。默认值为false
  • app:cardPreventCornerOverlap —— 是否给content添加padding,来阻止与圆角重叠,默认值为true

最常用的是前面两个,后面知道就行了,属于常用中的不常用吧。比如我们经常看到,有UI设计的界面有:
CardView_第1张图片
则可以用如下代码:


<android.support.v7.widget.CardView 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="108dp"
    这里有一个上右边距,避免cardview 的边和父view重合,显示不出来梯度的感觉
    android:layout_marginTop="8dp"
    android:layout_marginRight="@dimen/dp3"
    app:cardCornerRadius="@dimen/dp12"
    app:cardElevation="@dimen/dp3">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="108dp"
        android:orientation="horizontal">


        xxxx

    </LinearLayout>
</android.support.v7.widget.CardView>

app:cardElevation 不起作用

记住:先检查边距问题,就是cardview的上、右要留一点margin ; 如果margin 没有问题,要检查 acitivity 所在的清单文件manifest中 是否申明关闭硬件加速 : android:hardwareAccelerated=“false” 这个东西会让cardview的 无法显示Z 轴阴影;

假如同一个界面使用了虚线,也使用了cardView ,这时候不能在activity manifest中申明 android:hardwareAccelerated=“false” 让虚线显示,应该把这个虚线设置为
View mLineVIew = itemView.findViewById(R.id.lineView);
mLineVIew.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

你可能感兴趣的:(View,CardView)