完整的RecylerView的使用方法和例子
一、RecylerView的特点
1、 不关心Item是否显示在正确的位置,通过设置不同LayoutManager 的实例让Item显示不同的风格。
2、 不关心 Item间如何分离。要定义Item间的分隔效果,可以实现ItemDecoration的子类,ItemDecoration里提供了onDraw()和onOverDraw()方法来绘制Item间的分隔情况。
3、 不关注Item增加与删除的动画效果。可以通过ItemAnimator来增加Item增加与删除的效果。
4、 仅仅关注如何回收与复用View
二、RecylerView可以做什么
1、 可以显示ListView和GridView的风格
2、 可以显示横向的ListView和GridView
3、 可以显示瀑布流的效果
4、 可以很灵活的制定Item增加与删除的效果
三、如何导入jar包
因为我是用Android Studio实现的,所以在这里我只说一下Android Studio是如何导入jar包,以及遇到的问题并如何解决的。导入方法如下:
File——>Prooject Structure——>选择你当前的Modules——>Dependencies——>"+"——>Library dependency——>找到“recycleview-V7”包——>"OK"。
导入进来的jar包可以在build.gragle中看到,如图:
注意:导进来的jar包版本有可能和compileSdkVersion的版本不一致,会报红,但是不影响程序的正常运行。我觉得会报红可能是因为compileSdkVersion版本 比24低,但是现在还没有24版本的SDK。如图:
四、代码实现
这个项目在写的时候还是比较全面的,实现了ListView、GridView、横向GridView、瀑布流以及添加和删除Item,还实现了前三项的点击事件和长按事件,但是没有实现瀑布流的点击事件,如果大家有需求的话,可以参考前三个的点击事件和长按事件,我只是写了一个回调,因为RecylerView本身并没有提供点击事件的接口。还有一点需要注意的是,Item的间隔线,系统并没有写好ItemDecoration的实现类,需要我们自己去实现,Dome里我已经实现好了这个类叫DividerItemDecoration,大家也可以参考github,链接是:https://gist.github.com/alexfu/0f464fc3742f134ccd1e。由于瀑布流的特殊性,所以它的适配器是单独写的一个类叫StaggeredAdapter。为了让大家比较容易的实现效果,我就不在这里讲解我的代码了,里边重要的地方我已经写了小注释,下面我把我写的Dome给大家分享一下吧,链接是:http://pan.baidu.com/s/1cogQn0

完整的RecylerView的使用方法和例子的更多相关文章
- C++ stringstream介绍,使用方法与例子
From: http://www.usidcbbs.com/read-htm-tid-1898.html C++引入了ostringstream.istringstream.stringstream这 ...
- 【转】C++ stringstream介绍,使用方法与例子
原文来自:http://www.cnblogs.com/lancidie/archive/2010/12/03/1895161.html C++引入了ostringstream.istringstre ...
- C#A类派生类强转基类IL居然还是可以调用派生类中方法的例子
大家都知道在C#中,如果B类继承自A类,如果一个对象是B类型的但是转换为A类型之后,这个对象是无法在调用属于B类型的方法的,如下例子: 基类A: public class A { } 派生类B: pu ...
- oracle调用java方法的例子(下面所有代码都是在sql/plus中写)
在Oracle中调用Java程序,注意:java方法必须是static类型的,如果想在JAVA中使用system.out/err输出log. 需要在oracle 中执行"call dbms_ ...
- JSP调用JAVA方法小例子
用JAVA编写的函数 package doc; //定义一个包 public class Dy { //定义一个类 public static int Sub(int x,int y){ //定义函数 ...
- JSTL.带标签体的标签,方法和例子
1. 实现 forEach 标签: 两个属性: items(集合类型, Collection), var(String 类型) doTag: 遍历 items 对应的集合 把正在遍历的对象放入到 pa ...
- java写文件时,输出不完整的原因以及解决方法close()或flush()
在java的IO体系中,写文件通常会用到下面语句 BufferedWriter bw=new BufferedWriter(new FileWriter("sql语句.txt")) ...
- 从.src.rpm包中提取出完整的源码的方法
1 什么是完整的源码 就是说,最初始的源码加上打了所有的patch后的源码,即最新的源码. 2 过程 2.1 从.src.rpm中提取完整的rpm工程文件 2.1.1 rpm to cpio rpm2 ...
- asp.net 抽象方法和虚方法的用法区别,用Global类重写Application_BeginRequest等方法为例子
不废话,直接贴代码 public abstract class LogNetGlobal : System.Web.HttpApplication { protected void Applicati ...
随机推荐
- 五毛的cocos2d-x学习笔记06-处理用户交互
前几篇感觉自己在写教育文章,╮(╯▽╰)╭.今天换成开发者的口吻,毕竟我也是在边学边写博客. 处理用户交互包括:单点触摸.多点触摸.事件传递.传感器.物理按键等部分. 单点触摸: 触摸事件传递顺序 o ...
- centos7源以及相关的一些命令
yum makecache:将服务器上的软件包信息在本地缓存,以提高 搜索安装软件的速度. yum update:更新所有的rpm包 yum upgrade:大规模的版本升级,与yum update不 ...
- [cocos2d-x] 让精灵响应触摸 并把方向旋转到相对应的角度
在cocos2d-x里面 想要把一个精灵从原位置移动到用户所触摸到的点 , 并且把精灵的方向旋转相对应的弧度,可以参考一下我的做法 我这里的精灵是用一条鱼, 用户触摸后鱼就移动到所触摸的点, 并且移 ...
- tomcat远程debug端口开启
declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt ...
- HTML+CSS笔记 CSS进阶续集
元素分类 在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1&g ...
- 灵动标签内sql语句调用
本节来介绍帝国cms中,灵动标签中如何写数据库调用我们所要的信息.方便一些没有学习过数据库的朋友 转载请注明出处:谢寒的博客 灵动标签默认的语法 [e:loop={栏目ID/专题ID,显示条数,操作类 ...
- C#调用matlab出错r6034错误解决方法[转载]
在c#调用MATLAB时,在运行第一次会出现r6034错误. 解决方法如下: 1.在MCR安装目录下D:\Program Files\MATLAB\MATLAB Compiler Runtime\v7 ...
- [转]IE和Firefox兼容性问题及解决方法
今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错.IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下: 1.兼容firefox的 outerHTML,FF中 ...
- TMOUT
设置TMOUT可以踢用户,直接从shell端. 实际上如果ssh或telnet也可以在其配置里面设定.
- hdoj 3018 Ant Trip(无向图欧拉路||一笔画+并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3018 思路分析:题目可以看做一笔画问题,求最少画多少笔可以把所有的边画一次并且只画一次: 首先可以求出 ...