RecyclerView API官方文档译文
来源:互联网 发布:淘宝空姐妮妮是正品吗 编辑:程序博客网 时间:2024/04/27 21:03
RecyclerView
added in version 22.1.0
belongs to Maven artifact
com.android.support:recyclerview-v7:27.0.0
public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild2
继承关系
java.lang.Object
↳ android.view.View
↳ android.view.ViewGroup
↳ android.support.v7.widget.RecyclerView
已知直接子类
BaseGridView, WearableRecyclerView
已知间接子类
HorizontalGridView, VerticalGridView
一个在有限的窗口中展示大型数据集的灵活视图。
专业术语
- Adapter:RecyclerView.Adapter 的子类,负责提供一个数据集中的各个项目的视图。
- Position:适配器中的数据项的位置。
- Index:调用 getChildAt(int) 方法时的子视图的索引。与位置相对应。
- Binding:准备一个子视图来显示适配器中对应位置的数据的过程。
- Recycle (view):一个之前用于显示适配器中具体位置的数据并可存于缓存中用于之后显示同种类型数据的视图。通过跳过布局初始化或者布局创建,可以大幅度的提升性能。
- Scrap (view):一个在布局过程中进入临时性分离状态的子视图。它们可以重复使用而不会完全脱离父 RecyclerView,不论是不需要重新绑定未发生更改还是被适配器认为是脏的而发生了更改。
- Dirty (view):一个在显示之前必须由适配器还原的视图。
RecyclerView 中的位置
RecyclerView 是为了能够在布局计算过程中检测数据集的批量变化而从 RecyclerView.Adapter 和 RecyclerView.LayoutManager 之间额外抽象的概念。它可以跟踪适配器变化来计算动画,从而解放了 LayoutManager。它的所有视图绑定都同时发生且避免了不必要的绑定,从而也有助于提升性能。
因此,RecyclerView 中有两种与位置相关联的方法:
- layout position:子项目在最新的布局计算中的位置。这是从 LayoutManager(布局管理者) 的角度来看的。
- adapter position:子项目在适配器中的位置。这是从适配器的角度来看的。
除了发起 adapter.notify() 事件和计算更新后的布局之间的时间外,这两个位置是相同的。
任何返回或者接收 LayoutPosition 的方法都使用最新的布局计算位置(如:getLayoutPosition(), findViewHolderForLayoutPosition(int))。这些位置包含了直到最后一次的布局计算为止的所有更改。可以依靠这些位置来与用户当前在屏幕中看到的内容保持一致。例如,如果在屏幕上有一个项目列表,用户请求查看第五个元素,则应该使用这些方法来与用户正在看到内容进行匹配。
另一组与位置相关的方法是 AdapterPosition 的形式(如:getAdapterPosition(), findViewHolderForAdapterPosition(int))。当需要使用最新的适配器位置时,即使它们尚未反映到布局中,也应该使用这些方法。例如,如果你想通过 ViewHolder 的点击来访问适配器中的子项目,就应该使用 getAdapterPosition() 。请注意,如果 notifyDataSetChanged() 已被调用且尚未完成新布局的计算,则这些方法可能无法计算适配器的位置。因此需要小心的处理这些方法中的 NO_POSITION 或者为空的结果。
当编写一个 RecyclerView.LayoutManager 时要使用布局位置,而在编写一个 RecyclerView.Adapter 则需要使用适配器位置。
概要
嵌套类
class
RecyclerView.Adapter<VH extends RecyclerView.ViewHolder>
适配器的基类。
适配器提供了展示在 RecyclerView 中的特定数据集从应用程序到视图上的绑定。
class
RecyclerView.AdapterDataObserver
观察 RecyclerView.Adapter 的更改的观察者基类。
interface
RecyclerView.ChildDrawingOrderCallback
可以用来改变 RecyclerView 子项目的绘制顺序的回调接口。
class
RecyclerView.ItemAnimator
这个类定义了当适配器中的子项目发生变化时所发生的动画。
- RecyclerView API官方文档译文
- RecyclerView API译文
- RecyclerView API译文
- MediaCodec官方文档译文
- RecyclerView官方文档翻译
- PreferenceActivity 安卓官方文档(译文)
- Activity官方文档译文简析
- 16.1 Python 描述符官方文档译文
- Pixi官方文档译文(1)
- Pixi官方文档译文(2)
- Exoplayer Developer guide官方文档译文
- reactor官方文档译文(1)Reactor简介
- Dagger 官方文档之Dagger1(译文)
- ACE官方API文档
- Android官方API文档目录
- Core Data Features(Apple官方文档译文)
- Core Data Basics(Apple官方文档的译文)
- App开发架构指南(谷歌官方文档译文)
- 获取文件内容的大小
- armcc/armlink初探
- javaScript异步回调地狱解决方案的进展史
- SpringBoot + Thymeleaf 整合实例讲解
- Paxos算法与Zookeeper分析
- RecyclerView API官方文档译文
- 《计算机操作系统》总结三(进程同步)
- 系统间通信方式之(ActiveMQ的基础使用详细介绍1)(十二)
- JAVA中堆和栈的区别
- NLP的各种距离结合增量聚类思想计算当前进行信息量大的文本的筛选
- error/1 exit/1 exit/2 throw/1的区别
- React Native 全局属性和方法,全局Log, Api网络请求,全局样式
- python基础-OrderedDict、defaultdict、Counter、时间模块、sys模块
- 如何在各个版本的VC及64位下使用CPUID指令