Android——UI篇:RecyclerView设置点击效果无效的解决办法和item设置水波纹效果:

本文主要探讨了在Android中RecyclerView设置点击事件时遇到的问题及其解决方案,包括为什么点击效果无效及如何修复。同时,文章介绍了如何为RecyclerView的item添加水波纹效果,但需要注意的是,水波纹效果仅在Android 5.0及以上版本中可见。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、RecyclerView设置点击效果无效的解决办法

最近在学习使用RecyclerView,刚刚写了一个RecyclerView的点击事件,想添加一个点击效果,我是这么写的:


1、先在drawable目录下创建一个xml:item_selector.xml,文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@color/colorListClickColor" android:state_pressed="true" />
    <item android:drawable="@color/colorListClickColor" android:state_focused="true" />
    <item android:drawable="@color/write" />
</selector>

2、然后在RecyclerView的item布局中设置:

 android:background="@drawable/item_selector"


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:background="@drawable/item_selector">


    <TextView
        android:id="@+id/recycle_tv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:gravity="center"
        android:textSize="20sp" />


</RelativeLayout>

3、然后在适配器中给TextView设置的点击事件。。。。。然后。。。。。运行以后怎么点都没有按下变色的效果。

说实话,RecyclerView也挺坑,这些东西还都得自己写,虽然性能上比listView好使,但其他的真是不敢恭维啊。


4、再各种尝试之后,发现原因:

android:background="@drawable/item_selector"
上述这条属性,必须设置在TextView上才会有效。

也就是说:我们在适配器中为哪个控件设置的点击事件,在xml中就得为哪个控件设置这条属性,这样才会有效果

之前我的错误就是为TextView设置了点击事件,结果xml中却是给RelativeLayout设置了background这条属性,所以不管怎么点击都是没效果的。这个错误也确实挺坑的。一不小心就会犯错。都是粗心热的祸啊!



二、好了,设置点击效果无效的问题解决了,下面说一下设置点击出现水波纹的效果

声明:水波纹效果只有在android 5.0以上的手机才会有水波纹效果的。

1、res目录下新建drawable-v21文件夹,如下图:


2、在drawable-v21文件夹下新建xml文件:item_selector.xml,文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorListClickColor">
    <item android:drawable="@color/write"/>
</ripple>

3、和文章开始说的设置点击效果的步骤一样,直接为item布局中的TextView设置background属性即可:

android:background="@drawable/item_selector"


4、最后,运行项目,就可以看到水波纹效果了,记住android5.0以下的设备是无法显示水波纹效果的!



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值