Android 学习之 RecycleView
最近公司的安卓项目需要重构了,刚好最近手头上的事告一段落,正好借这个机会学一些安卓的东西来支持一下同事的重构,帮忙写一些界面和简单的逻辑业务。
这篇文章是我类比 iOS 学习 Android RecycleView 的一个记录。
- RecycleView 基本介绍
- 类比一下
RecycleView 基本介绍
它就是一个呈现大量内容的列表,使用 LayoutManger、ItemDecoration、ItemAnimator 及 Adapter 可以呈现各种用户需要的效果。
基本使用
0. RecycleView
- 项目中添加 RecyclerView 的依赖
1 | implementation 'com.android.support:recyclerview-v7:28.0.0' |
- 布局中加入
1 | <android.support.v7.widget.RecyclerView |
- 获取 RecycleView
1 | mRecyclerView = (RecyclerView)findViewById(R.id.recylerview); |
1. LayoutManager
布局管理,RecyclerView 需要使用它来控制每个 item 的呈现形式。
1 | layoutManager = new LinearLayoutManager(this); |
- 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 层面通过上面的类比可以看出都是大同小异的(也可能是我对安卓目前的了解还太浅显)。其实,无论怎么学习什么,如果我们能将原理摸清楚,那么上层呈现对我们来说应该都不会太复杂。