RecyclerView基础知识

2017-09-13  本文已影响0人  撕裂的我

RecyclerView的前身就是ListView,为什么有了ListView还需要RecyclerView呢?因为ListView天生就有很大的缺陷。

ListView的缺陷

1.ListView的扩展性不好,只能实现纵向滚动,不支持横向滚动。
2.ListView的点击事件setOnItemClickListener()不能做到精确定位(例如ListView的item中还有一个按钮)。

RecyclerView的基本用法

布局管理器
RecyclerView提供了3种布局管理器1.LinearLayoutManager;2.GridLayoutManager;3.StaggeredGridLayoutManager。

1.LinearLayoutManager默认是纵向排列的,显示的item是从上到下的。如果想横向排列,及从左到右显示item需要设置方向。

LinearLayoutManager manager = new LinearLayoutManager(this);
manager.setOrientation(LinearLayoutManager.HORIZONTAL);

2.GridLayoutManager是网格布局,可以自己设置分为几列。
3.StaggeredGridLayoutManager是瀑布流布局,可以轻松的实现瀑布流的效果。我们也可以设置瀑布流的排列方式(横向,纵向)和行(列)数。
适配器
适配器需要基础RecyclerView.Adapter;必须要实现3个方法。
1.onCreateViewHolder();2.onBindViewHolder();getItemCount()。

1.onCreateViewHolder()用于创建ViewHolder实例(一般都是内部类,viewHolder要继承RecyclerView.ViewHolder),然后将这个ViewHolder实例返回。

2.onBindViewHolder()对RecyclerView的子项数据进行赋值,会在每个子项被滚动到屏幕内的时候执行。
3.getItemCount()告诉RecyclerView有多少子项,直接返回数据源的长度。

int position = holder.getAdapterPosition();

补充
ListView的布局排列是有自身去管理的,而RecyclerView将这个工作交给了LayoutManager,LayoutManager中制定了一套可以扩展的布局排列接口,子类只需要按照接口的规范来实现,就能定制出各种不同排列方式的布局。

参考文章:郭霖 《第一行代码》

上一篇 下一篇

猜你喜欢

热点阅读