当前位置: 首页 > >

RecyclerView item按下变色效果+水波纹效果

发布时间:

相信大家肯定有过这样的需求,给recyclerview的条目设置按下变色或者水波纹效果


1. 水波纹效果实现

1)系统效果


系统有界效果
在API 21以上使用,才有波纹效果;API 21以下使用只有变色效果,没有波纹效果

android:background="?android:attr/selectableItemBackground"

系统无界效果
在API 21以上才能使用,API 21以下会报错无法编译,最小版本要设置为minSdkVersion 21

android:background="?android:attr/selectableItemBackgroundBorderless"

2)自定义效果

自定义有界效果


android:color="@color/gray">








自定义无界效果


android:color="@color/gray">


自定义带图片效果


android:color="@color/gray">



android:drawable="@drawable/normal_bg"
android:state_pressed="false" />

android:drawable="@drawable/select_bg"
android:state_pressed="true" />




2. 按下变色效果

在drawable目录下创建? bg_change.xml 文件








// android:drawable 可设置颜色跟图片
//android:state_pressed="true" 代表按下

3. 在布局中使用:

//设置背景

android:background="@drawable/bg_change"


但是有时候你会发现无论你怎么设置都不起作用,
本文的关键点:? ?设置条目的点击事件
本文的关键点:? ?设置条目的点击事件
本文的关键点:? ?设置条目的点击事件

? ?holder.itemView.setOnClickListener(new View.OnClickListener() {
? ? ? ? ? ? ? ? @Override
? ? ? ? ? ? ? ? public void onClick(View v) {
? ? ? ? ? ? ? ? ? ? ?Toast.makeText(holder.itemView.getContext(),"点击了", Toast.LENGTH_SHORT).show();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? });



?



到此你会发现按下效果已经出现了
?



友情链接: