CardView去除阴影,CardView动态改变item文字

结合自己在项目中的具体应用,来说说在使用CardView时候的一些问题。CardView是什么,这里就不多说了,简单的理解就是可以代替ListView的一种控件,是ListVIew的升级。而在使用CardView的时候,确实可以发现他的很多优点。


1、首先我引用的CardView版本如下

 对于用android studio开发工具,引用CardView是dependencies { ...  }中添加如下代码

compile'com.android.support:recyclerview-v7:23.1.1'    //recyclerview兼容库
compile 'com.android.support:cardview-v7:22.2.0'        
//cardview兼容库


2、CardView的一些基本属性

  • CardView_cardBackgroundColor 设置背景色
  • CardView_cardCornerRadius 设置圆角大小
  • CardView_cardElevation 设置z轴阴影
  • CardView_cardMaxElevation 设置z轴最大高度值
  • CardView_cardUseCompatPadding 是否使用CompadPadding
  • CardView_cardPreventCornerOverlap 是否使用PreventCornerOverlap
  • CardView_contentPadding 内容的padding
  • CardView_contentPaddingLeft 内容的左padding
  • CardView_contentPaddingTop 内容的上padding
  • CardView_contentPaddingRight 内容的右padding
  • CardView_contentPaddingBottom 内容的底padding  

3、接下来就开始抛问题了

问题1,点击CardView某个Item后,如何修改文字以及颜色。(如下图,点击打开,变成关闭,并红色显示) 

        

      解决方式先v.findViewById然后set

/**
* 点击响应事件
*/

class openText implements View.OnClickListener {
@Override
public void onClick(View v) {

    if (mOnItemClickListener != null) {


     //设置背景,白色
    v.setBackground(0xFFFFFFFF); //注意这里是直接v.set
    //设置文字,关闭
    ((TextView)(v.findViewById(R.id.btn_open))).setText(“关闭”);//注意这里是先v.findViewById然后set
    //设置颜色,红色
   ((TextView)(v.findViewById(R.id.btn_open))).setTextColor(0xFFFF0000);//注意这里是先v.findViewById然后set

    mOnItemClickListener.onItemClick(v, v.getTag().toString());
    }
  }
}

问题2,如何去除CardView阴影

正如CardView的阴影属性,绝大部分时候都是需要的,但是有时候纯粹当作ListView使用则不希望显示阴影,该怎么办呢?

a.首先,设置阴影属性

app:cardElevation="0px" //阴影大小

app:cardMaxElevation="2px"//最大阴影大小,该值最小2px
app:cardUseCompatPadding="false"//不显示阴影
b.设置了以上属性仍然可能会有阴影,再设置
app:contentPaddingBottom="-20dp"//-20dp随便,为了保险起见取的20
app:contentPaddingTop="-20dp"
c.到此如果还是有阴影,那么就在Adapter的nBindViewHolder()方法中,设置CardView的背景色, 就可以完全解决去除阴影问题了
holder.content.setBackgroundColor(0xFFFFFFFF);//content是CardView的布局

实现a\b\c三步骤就可以完全解决去除CardView阴影这一问题了,经测试在android4.4 5.0都通过。

如果需要下划线,那么久在CardVIew的布局content中,添加高度为1的下划线,即可

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="@color/black_color" />



-----2016/4/5-----



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值