android 5.0推出了recyclerView,号称更快的listview,那他们究竟有什么本质上的不同呢?现在来好好探究下。
RecycleBin vs Recycler
这两个类是重用view的核心类,其负责回收多余的view并对新的view进行重用,实际都是使用arrayList,不同之处是RecycleBin是对View一整个item进行存储,而Recycler则对ViewHolder进行存储,其存储信息更多,能够获取更多的信息。而且其缓存的viewHolder一般为可见item+2。
更好的解耦
recyclerView的布局相关操作交由layoutManager进行管理,这样可以实现相应的水平,垂直以及网格视图,自定义化更强,而listview需要承担数据与布局等多个职责。
//linearLayoutManager完成view的layout,核心方法。内部还有fill方法,从缓存的list中获取相应的回收的view
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
// layout algorithm: