Android RecyclerView 完全解析
2016-06-16 20:07
399 查看
什么是RecyclerView
你想要控制其显示的方式,请通过布局管理器LayoutManager你想要控制Item间的间隔(可绘制),请通过ItemDecoration
你想要控制Item增删的动画,请通过ItemAnimator
![RecyclerView能干什么][1]
RecycleView
1、不关心Item是否显示在正确的位置,如何显示 —–用LayoutManager
2、不关心Item间如何分隔 —–ItemDecoration
3、不关注Item增加与删除的动画效果 —-ItemAnimator
4、仅仅关注如何回收与复用View
RecycleView相关的重要的类
1、Adapter
2、ViewHolder
3、LayoutManager
4、ItemDecoration
5、ItemAnimator
RecycleView能干什么
1、Just like Listview —–用LayoutManager
2、Just like GridView —–用LayoutManager
3、横向ListView —–用LayoutManager
4、横向GridView —–用LayoutManager
5、瀑布流 —–用LayoutManager
6、定制Item增加与删除动画 —-ItemAnimator
RecycleView 设计思想:
不关心内部的item是否显示在正确的位置,如何显示<—–LayoutManager(设置LinearLayoutManager,GridLayoutManager)
不关心item间如何分隔<——–ItemDecoration(ListView可以通过Divider来设置)
不关心item增加与删除的动画效果<——ItemAnimator(可实现其子类)
仅仅关注如何回收与复用view
属于一个插件式的架构,通过三个类的组合来实现需求
相关的重要类:
Adapter(自己的适配器)
ViewHolder(强制使用)
LayoutManager
ItemDecoration(分隔效果)
ItemAnimator(动画效果)
RecyclerView能实现:
依赖于LayoutManager的设置
1、Just like ListView(显示传统ListView的风格)
2、Just like GridView(显示传统GridView的风格)
3、横向ListView
4、横向GridView
5、瀑布流
依赖于ItemAnimator的设置
6、定制Item增加与删除动画
![listview和gridview等排列方式点转换,同时满足漂亮的添加删除][2]
实现ListView
继承Adapter创建ViewHolder
构造函数传递参数进来,LayoutInflater用于得到布局
getItemCount()返回list大小
onCreateViewHolder()创建刚刚给的MyViewHolder(布局view)
在ViewHolder传入的View后,初始化控件,设置属性
onBindViewHolder()中给holder中控件赋值
回到Activity中给RecylerView设置layoutmanager(linear 或者grid)
![ViewHolder][3]
![此处输入图片的描述][4]
initDatas();initViews();
mRecyclerView.setAdapter(new SimpleAdapter(this,mDatas));
linearLayoutManager= new LinearLaoutManager(this,xx,xx);
mRecyclerView.setLayoutManager(linearLayoutManager);
![gradle配置recylerView导包][5]
添加分割线
![使用这时RecylerView分割线 .addItemDecoration(),增加一个类][6]![补充分割线][7]
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories