RecyclerView的使用(四)

前面我们已经实现了RecyclerView的大部分功能了,但是有个很明显的缺陷-------没有点击效果!这就坑爹了

ListView自带点击效果好嘛!连这个都要自己定义。。。。

话不多说,下面就来为RecyclerView添加点击效果吧!跟我们为普通button定义点击效果一样我们要实现以下几个步骤:

  1、在value目录下新建colors.xml文件并配置item的press和normal状态下的颜色

  2、在drawable下创建 xxx_selector.xml方法,将item两个状态的颜色配置进去

  3、在 xxx_item.xml的item布局文件中修改item的background设置成drawable下的xxx.selector

很简单是吧!有人会想不通为啥不在selector里面直接写颜色码,这样不是很方便么?其实试过的人都知道,selector内的item不能直接

写颜色码的。好了,闲言少叙,开始吧!

第一步:在value目录下新建colors.xml文件并配置item的press和normal状态下的颜色

colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="colorPrimary">#3F51B5</color>
    <color name="colorPrimaryDark">#303F9F</color>
    <color name="colorAccent">#FF4081</color>
</resources>

第二步:在drawable下创建 xxx_selector.xml方法,将item两个状态的颜色配置进去

recycler_item_select.xml

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

第三步:在 xxx_item.xml的item布局文件中修改item的background设置成drawable下的xxx.selector

(上图的recyclerview拼写有些错误,请见谅)

recyclerview_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:background="@drawable/recycler_item_select"
    android:layout_margin="2dp"
    android:orientation="vertical">

    <TextView
        android:id="@+id/recycle_tv"
        android:textSize="20dp"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

上面工作都搞定以后来看看效果吧!

很简单,是吧!前面说了,这个方法也可以为很多类似点击的控件添加点击效果例如button

到这里RecyclerView的内容大概就这些了,里面还有个添加和删除的方法没有说,不过代码里面已经包含了。小伙伴们

可以自己研究下。这里贴下效果图:

当点击右下角的邮件图标时会在item 1 的位置添加一个新的item

当点击右上角红色框出的图标时会删除一个在item 1 位置的item

图标没有换比较丑,大家见谅。

时间: 2024-10-11 12:54:11

RecyclerView的使用(四)的相关文章

android studio中使用recyclerview小白篇(四)

经过努力,我们的recyclerview终于可以使用了,但是装配上真实的数据后,发现左边的内容太长了,如果超过一行,左边内容和右边的内容竟然重叠在一起了,好是让人心塞啊,如下图 后来发现设置左边textview的这个属性,android:layout_marginRight="100dp",然后就能很整齐不会重叠在一起了,当然你也得看右边内容的宽度了,一定要宽于右边内容的宽度才行,运行后如下图

RecyclerView 知识梳理(5) - ItemTouchHelper

一.概述 ItemTouchHelper在RecyclerView的整个体系中,负责监听Item的手势操作,我们通过给它设置一个继承于ItemTouchHelper.Callback的子类,在其中处理Item的UI变化,就可以完成侧滑删除.拖动排序等操作,下面,我们分以下几部介绍: API解析 实战 采用默认动画 自定义侧滑删除动画 二.API分析 对于Item的手势操作分为两种:侧滑和拖动,如果需要支持这两种,那么需要给ItemTouchHelper传入一个ItemTouchHelper.Ca

Android RecyclerView的item大小保持四个半

现在有这么一个需求,实现下图的UI.  我想你应该能想到用RecyclerView实现, 当我唰唰唰几分钟做完之后,UI设计师跟我说,每个item,无论在什么手机上,都要显示四个半,具体看下图. 我们都知道,Android手机的屏幕大小不一,这种需求我们不可能把图片的宽写死,或者写成wrap_content,这个时候就要在java代码中重新测量并且重新设置宽了.代码如下: LinearLayout.LayoutParams params = new LinearLayout.LayoutPara

android v7兼容包RecyclerView的使用(四)——点击事件的不同方式处理

前三篇文章 android v7兼容包RecyclerView的使用(三)--布局管理器的使用 android v7兼容包RecyclerView的使用(二) android v7兼容包RecyclerView的使用(一) 介绍了RecyclerView的使用以及常见的相关类和布局管理器的灵活之处.写了这么多篇,还没涉及到用户交互,那么怎么处理点击事件呢. 在RecyclerView中你会惊奇的发现,该类中并没有OnItemClickListener监听器监听我们的单击事件,也没有OnItemL

&lt;Android 基础(四)&gt; RecyclerView

介绍 RecyclerView是ListView的豪华增强版.它主要包含以下几处新的特性,如ViewHolder,ItemDecorator,LayoutManager,SmothScroller以及增加或删除item时item动画等.官方推荐我们采用RecyclerView来取代ListView. 相对优势 ViewHolder ListView需要自己实现ViewHolder来提高性能,或者不使用ViewHolder,但是使用ViewHolder来绑定对象是一个很好的习惯.RecyclerV

Android Studio - 第四十三期 RecyclerView存在大量Item时,当滚到底部时快速滑到顶部

在使用RecyclerView展示图片或者其他信息时,往往需要展示很多的Item,当滚到底部时又想回到顶部,如果一点一点的向上划去比较麻烦,而且用户体验不好.因此添加一个快速回到顶部的按钮是很有必要的,并且刚开始的时候这个按钮是隐藏的,当滑动超过超过一屏的时候才会出现,在滑动的过程中也是不会出现的.很多类似的项目都会使用到,但是如何在快速回到顶部的过程中不出现卡顿,体现的很是流畅,这点很重要.下面是我根据网上的方法自己修改的一个可以快速回到顶部的类,在此做一下备注,以便日后查看: 1.FastS

【Android】13.0 UI开发(四)——列表控件RecyclerView的横向布局排列实现

1.0 新建项目,由于ListView的局限性,RecyclerView是一种很好取代ListView的控件,可以灵活实现多种布局. 2.0 新建项目RecyclerviewTest,目录如下: 3.0 这里需要在app/build.gradle中配置,导入依赖包: dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompa

【FastDev4Android框架开发】实例解析之SwipeRefreshLayout+RecyclerView+CardView(三十五)

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50087873 本文出自:[江清清的博客] (一).前言: 作为Android L开始,Google更新了新控件RecyclerView和CardView,这两个控件在之前的文章中已经做了详细介绍和使用,同时在前面还对下拉刷新组件SwipeRefreshLayout进行相关讲解.本来该专题不在更新了,正好昨天有一个群友问到了怎么样结合SwipeRefreshLayou

明日之星——RecyclerView(一)

在Listview中使用了很久的viewholder.setTag.getTag来实现Item复用后, Google大大终于看不下去了.推出了明日之星RecyclerView,现已加入support.v7豪华套餐.顾名思义,RecyclerView本身是不管怎么布局的.它本身只负责,加载看得见的viewHolder,释放看不见的viewHolder.这一功能就代替掉了,ListView中麻烦的Item复用设计.而对于布局的控制,RecyclerView则依赖于LayoutManager.下面,我