深入理解RecyclerView的设计和实现

RecyclerView作为官方替代ListView的控件,它具有以下优点

  1. 自定义布局方式,使我们轻松实现ListView、GridView形式,瀑布流形式
  2. 定义ViewHolder代替View,封装了缓存判断逻辑

RecyclerView实现流程

mRecyclerView.setLayoutManager(getActivity());
mRecyclerView.setHasFixedSize(true);
mRecyclerView.setAdapter(mAdapter);

通过执行以上代码片段,执行流程如下图的
深入理解RecyclerView的设计和实现_第1张图片

RecyclerView的设计

  1. 通过桥接模式,使RecyclerView 将布局方式独立成LayoutManager,实现对布局的定制化。
  2. 通过组合模式,使RecycleView通过dispatchLayout对Item View进行布局绘制的。
  3. 通过适配器模式,ViewHolder将RecycleView与ItemView联系起来,使得RecycleView方便操作ItemView。
  4. 通过观察者模式,给ViewHolder注册观察者,当调用notifyDataSetChanged时,就能重新绘制。

使用RecyclerView注意问题

  1. 没有处理Item点击事件
  2. 没有Header 和Footer接口
  3. RecyclerView的操作单位时ViewHolder,不再是View
  4. ViewHolder是android中定义的Adapter基类中的泛型参数

你可能感兴趣的:(设计)