recycleView
一.基本需要了解的:
1.首先我们要了解一下什么是recyclerview?
根据字面的意思可以看出,recyclerview是重视回收和复用的view的一种控件;
2.再来看看里面重要的几个方法:
(1)getItemViewType(int position)-----------------------根据位置来判定使用哪种类型的View(这样我们就有了打造出各种样式的recyclerView的基础)
(2)recyclerView.Holder--------------------------------------主要是对findviewbyid的减少使用的优化,这个和listview没什么区别,只是说recyclerview设计到里面,不用自己添加
(3)recyclerView.Recycler-----------------------------------这个就是recycleview的回收--->缓存机制
3.多布局设计流程: 有
1.滚动-------->getItemViewType(int offsetposition)-------------------->根据type找到Holder-------------------------->adapter.BindViewHolder
没有
-------------------------->adapter.CreatViewHolder
4.Itemtype的作用:
(1)itemtype保存在Holder中;
(2)Holder根据position被缓存在cache中,复用时,系统会在chache里面拿holder
(3)遍历缓存中的holder,如果Type一致就返回;
5.RecyclerView.Holder
(1)recyclerView中保存view的单位
(2)记录在RecyclerView中的基本信息
(3)是否需要被缓存Tag标志
6.RecycleView.Recycler
(1)recyclerView中被缓存的Holder
缓存 保存 存放 (内部类)
RecyclerView-------------------------》holder---------------------》map----------------------------》Recycler
(2)加入使用有多个recyclerView会公用一个RecyclerPool(缓存池)
7.我们来谈谈它和ListView的区别:
(1)Type已经是Holder的成员
(2)RcyclerView的缓存单位是Holder而不是View
(3)RcycleredPool的缓存Key是Type
二.重点需要学习的:
1.Item间的动画,间隔的实现
(1)Item的布局,就是使用LayoutManager来设置主要有两种 1.LinearLayout 2.Gridlayout
(2)Item间如何分隔---------------------------》通过实现ItemDecoration这个类的子类来实现
(3)Item间的增加和删除动画------------------》通过实现ItemAnimation类的子类
2.recyclerView的作用;
(1)可以实现ListView,Gridview
(2)横向listView,横向Gridview
(3)瀑布流
(4)定制Item的增加和删除的动画