Android RecyclerView —— 基本使用
Android RecyclerView —— 适配器封装探索
Android RecyclerView —— 自定义分割线
RecyclerView 我相信大家都不陌生,是Google在Android 5.0 的时候推出的一个可以在有限的窗口中展示大量数据集的控件(类似的控件有ListView、GridView),放在了 com.android.support:recyclerview-v7:xx.x.x 包下(xx表示版本),那么既然已经有了ListView、GridView,为什么还要使用RecyclerView呢?主要是因为RecyclerView高度解耦,非常灵活,使用简单的代码就能达到一些绚丽的效果。不过 RecyclerView 有一个地方比较坑,那就是 item 的点击和长按事件系统都没有实现,需要自己实现。
使用基本流程
recyclerView = findView(R.id.id_recyclerview);
// 设置布局管理器
recyclerView.setLayoutManager(layout);
// 设置Adapter
recyclerView.setAdapter(adapter)
// 设置Item增加、移除动画(根据需求确认是否需要)
recyclerView.setItemAnimator(new DefaultItemAnimator());
// 添加分割线(根据需求确认是否需要)
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.HORIZONTAL_LIST));
看到上面的代码,我们发现至少需要设置一个 LayoutManager
和 Adapter
,而以前的 ListView
和 GridView
最基本的使用,只需要设置 Adapter
就行了,那么感觉使用 RecyclerView
比 ListView
更加麻烦,代码量更多,这是因为 RecyclerView
这个控件的主要功能就是复用与回收,其他的效果和功能都可以开发者根据需求自定义,这也就是我们为什么可以只要改变 RecyclerView.LayoutManager
就可以实现 ListView、GridView
以及瀑布流的效果了。
实现 ListView
效果(LinearLayoutManager
)
想要实现 ListView
效果,只需设置 RecyclerView.LayoutManager
为 LinearLayoutManager
就行了,然后设置 Adapter
。
LinearLayoutManager
常用的 构造方法有2个:
// 只需要一个上下文参数,默认表示一个垂直方向的列表
public LinearLayoutManager(Context context)
// 参数1:上下文;
// 参数2:列表方向,值为 水平:HORIZONTAL(0) 垂直:VERTICAL(1);
// 参数3:false表示RecycleView中item从上到下依次添加;true表示RecycleView中item从下到上依次添加,一般为 false
public LinearLayoutManager(Context context, int orientation, boolean reverseLayout)