重点:
分配好getItemViewType(int position)中的Type;
type只需要时一个数字即可,不一定是连续的,但必须是唯一的
与ListView的区别
RecyclerView.Recycler:
多个RecyclerView共用一个RecycleredPool,
RecycleredPool为RecyclerView的静态成员变量
配置缓存Size
RecyclerView.Recycler:
RecyclerView通过内部类Recycler中的Map缓存了Holder
RecyclerView.Holder 在RecycleView中保存View,包装了View;
与ListView不同,ListView的cache中保存的是View,而RecyclerView的cache中保存的Holder,在Holder中包装了一个View;
Holder中保存着Type,Position,是否需要被缓存的Flag标志等信息
getItemType:
遍历缓存中的Holder,如果Type与所需要的一致就返回Holder
getItemType的作用
ItemType 保存在Holder中,holder根据position被缓存在cache中
RecyclerView支持多样Item布局的原理