Android 学习之 RecycleView

最近公司的安卓项目需要重构了,刚好最近手头上的事告一段落,正好借这个机会学一些安卓的东西来支持一下同事的重构,帮忙写一些界面和简单的逻辑业务。

这篇文章是我类比 iOS 学习 Android RecycleView 的一个记录。

  • RecycleView 基本介绍
  • 类比一下

RecycleView 基本介绍

它就是一个呈现大量内容的列表,使用 LayoutManger、ItemDecoration、ItemAnimator 及 Adapter 可以呈现各种用户需要的效果。

基本使用

0. RecycleView

  1. 项目中添加 RecyclerView 的依赖
1
implementation 'com.android.support:recyclerview-v7:28.0.0'
  1. 布局中加入
1
2
3
4
5
6
<android.support.v7.widget.RecyclerView
android:id="@+id/recylerview"
android:layout_width="match_parent"
android:layout_height="match_parent">

</android.support.v7.widget.RecyclerView>
  1. 获取 RecycleView
1
mRecyclerView = (RecyclerView)findViewById(R.id.recylerview);

1. LayoutManager

布局管理,RecyclerView 需要使用它来控制每个 item 的呈现形式。

1
2
3
4
5
layoutManager = new LinearLayoutManager(this);

layoutManager.setOrientation(LinearLayoutManager.VERTICAL);

mRecyclerView.setLayoutManager(layoutManager);
  • LinearLayoutManager:线性布局,横向或者纵向。
  • GridLayoutManager:网格布局。
  • StaggeredGridLayoutManager:瀑布流。

2. ItemDecoration

RecyclerView 没有提供分割线,我们可以继承这个类来实现,而且它也可以实现类似于头部、底部视图的效果。

3. Adapter

适配器,提供数据给 RecyclerView。

类比一下

RecycleView 其实就相当于 iOS 中的 UITableView 及 UICollectionView。

Adapter 就相当于 delegate、dataSource 为 RecycleView 提供了数据源及 item 点击事件的监听。

LayoutManager 就相当于 UICollectionView 的 Layout 类,定义了 item 在视图中的呈现方式。

当这两个类设置好之后,其实我们可以得到大部分我们需要的 RecycleView 的展示效果了。

最后

个人认为 Android 学习中的难点应该是系统原理及一些底层的探究,UI 层面通过上面的类比可以看出都是大同小异的(也可能是我对安卓目前的了解还太浅显)。其实,无论怎么学习什么,如果我们能将原理摸清楚,那么上层呈现对我们来说应该都不会太复杂。

Demo地址在此