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基类中的泛型参数