深入理解RecyclerView的设计和实现
2016-04-16 17:17
239 查看
RecyclerView作为官方替代ListView的控件,它具有以下优点
自定义布局方式,使我们轻松实现ListView、GridView形式,瀑布流形式定义ViewHolder代替View,封装了缓存判断逻辑
RecyclerView实现流程
mRecyclerView.setLayoutManager(getActivity()); mRecyclerView.setHasFixedSize(true); mRecyclerView.setAdapter(mAdapter);
通过执行以上代码片段,执行流程如下图的
RecyclerView的设计
通过桥接模式,使RecyclerView 将布局方式独立成LayoutManager,实现对布局的定制化。通过组合模式,使RecycleView通过dispatchLayout对Item View进行布局绘制的。
通过适配器模式,ViewHolder将RecycleView与ItemView联系起来,使得RecycleView方便操作ItemView。
通过观察者模式,给ViewHolder注册观察者,当调用notifyDataSetChanged时,就能重新绘制。
使用RecyclerView注意问题
没有处理Item点击事件没有Header 和Footer接口
RecyclerView的操作单位时ViewHolder,不再是View
ViewHolder是android中定义的Adapter基类中的泛型参数
相关文章推荐
- 抽签
- java引用说明:java强引用、软引用、弱引用、虚引用
- JS Array ECMAScript5 Methods
- 看看C# 6.0中那些语法糖都干了些什么(终结篇)
- org 导出过滤
- 算法训练 入学考试
- Java中的static关键字解析
- Ubuntu设置静态IP
- 【NOIP practice】BSOJ2175 股票 暴力+细节
- 近几年前端技术盘点以及 2016 年技术发展方向
- 构建之法阅读笔记04
- 在线买火车票为什么要安装根证书?
- SDOI HH的项链 HEOI采花
- 查看错误码
- LeetCode——030
- SCOJ 4423: Necklace polya
- 显式intent和隐式intent区别
- 编程时遇到的疑惑和解决。
- dock 栏使用技巧(一)添加文件夹快捷方式 空白分隔区 最近使用列表
- java对mysql的增删改查