结合自己在项目中的具体应用,来说说在使用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-----