相信大家肯定有过这样的需求,给recyclerview的条目设置按下变色或者水波纹效果
1. 水波纹效果实现
1)系统效果
系统有界效果
在API 21以上使用,才有波纹效果;API 21以下使用只有变色效果,没有波纹效果
android:background="?android:attr/selectableItemBackground"
系统无界效果
在API 21以上才能使用,API 21以下会报错无法编译,最小版本要设置为minSdkVersion 21
android:background="?android:attr/selectableItemBackgroundBorderless"
2)自定义效果
在drawable文件夹下新建 bg_change.xml 文件用于实现波纹效果。(仅限Android 5.0以上机型)
自定义有界效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/gray"> <!--波纹颜色-->
<item>
<shape android:shape="rectangle">
<!-- 填充背景色-->
<solid android:color="@color/white"/>
</shape>
</item>
</ripple>
自定义无界效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/gray"> <!--波纹颜色-->
</ripple>
自定义带图片效果
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/gray"> <!--波纹颜色-->
<item>
<selector>
<!-- 未点击背景图-->
<item
android:drawable="@drawable/normal_bg"
android:state_pressed="false" />
<!-- 点击背景图-->
<item
android:drawable="@drawable/select_bg"
android:state_pressed="true" />
</selector>
</item>
</ripple>
2. 按下变色效果
在drawable目录下创建 bg_change.xml 文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/white_color" android:state_pressed="false"/>
<item android:drawable="@color/red_color" android:state_pressed="true" />
</selector>
// 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();
}
});
到此你会发现按下效果已经出现了
————————————————
版权声明:本文为CSDN博主「水样_年华」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/q714093365/article/details/77054080
来源:oschina
链接:https://my.oschina.net/u/4000302/blog/3136995