RecyclerView 中文

RecyclerView

public class RecyclerView 
extends ViewGroup implements ScrollingViewNestedScrollingChild2

java.lang.Object继承
   ↳android.view.View
    ↳android.view.ViewGroup
     ↳android.support.v7.widget.RecyclerView
disclosure_down.png已知的直接子类
disclosure_down.png已知的间接子类

 


灵活的视图,用于为大型数据集提供有限的窗口。

专业术语:

  • 适配器:RecyclerView.Adapter负责提供表示数据集中项目的视图的子类。
  • 位置:适配器中数据项的位置。
  • 索引:在调用中使用的附加子视图的索引 getChildAt(int)。与职位对比
  • 绑定:准备子视图以显示与适配器中的位置对应的数据的过程。
  • 回收(视图):先前用于显示特定适配器位置的数据的视图可以放置在高速缓存中以供稍后重用,以便稍后再次显示相同类型的数据。这可以通过跳过初始布局膨胀或构造来显着提高性能。
  • Scrap(视图):在布局期间进入临时分离状态的子视图。废弃视图可以重复使用,而不会与父级RecyclerView完全分离,如果不需要重新绑定,则不进行修改,如果视图被视为脏,则由适配器修改。
  • 脏(视图):在显示之前必须通过适配器反弹的子视图。
RecyclerView中的位置:

RecyclerView 在布局计算过程中引入了额外的抽象级别,RecyclerView.Adapter并且RecyclerView.LayoutManager能够批量检测数据集更改。这样可以保存LayoutManager跟踪适配器更改以计算动画。它还有助于提高性能,因为所有视图绑定都同时发生,并且避免了不必要的绑定。

因此,positionRecyclerView中有两种类型的相关方法:

  • 布局位置:项目在最新布局计算中的位置。这是从LayoutManager的角度来看的位置。
  • 适配器位置:项目在适配器中的位置。这是从Adapter的角度来看的位置。

除了调度adapter.notify* 事件和计算更新的布局之间的时间之外,这两个位置是相同的。

方法,返回或收到*LayoutPosition*的最新布局计算的(如:使用位置getLayoutPosition()findViewHolderForLayoutPosition(int))。这些位置包括直到最后一次布局计算的所有更改。您可以依靠这些位置与用户当前在屏幕上看到的内容保持一致。例如,如果屏幕上有一个项目列表,并且用户要求输入第5 个元素,则应使用这些方法,因为它们与用户看到的内容相匹配。

另一组与位置相关的方法是以。的形式 *AdapterPosition*。(例如getAdapterPosition()findViewHolderForAdapterPosition(int))当您需要使用最新的适配器位置时,即使它们可能尚未反映到布局中, 您也应该使用这些方法。例如,如果要在ViewHolder上单击适配器中的项目,则应使用getAdapterPosition()。请注意,如果notifyDataSetChanged()已调用并且尚未计算新布局,则这些方法可能无法计算适配器位置。出于这个原因,您应该仔细处理NO_POSITION或 null从这些方法得到结果。

写作时RecyclerView.LayoutManager你几乎总是想要使用布局位置,而写作时RecyclerView.Adapter,你可能想要使用适配器位置。

摘要

嵌套类

classRecyclerView.Adapter<VH extends RecyclerView.ViewHolder>

适配器的基类

适配器提供从特定于应用程序的数据集到在a中显示的视图的绑定RecyclerView。 

classRecyclerView.AdapterDataObserver

用于观察变化的观察者基类RecyclerView.Adapter。 

interfaceRecyclerView.ChildDrawingOrderCallback

一个回调接口,可用于更改RecyclerView子项的绘制顺序。 

classRecyclerView.EdgeEffectFactory

EdgeEffectFactory允许您为RecyclerViews自定义过度滚动边缘效果。 

classRecyclerView.ItemAnimator

此类定义在对适配器进行更改时对项目进行的动画。 

classRecyclerView.ItemDecoration

ItemDecoration允许应用程序从适配器的数据集向特定项视图添加特殊的绘图和布局偏移。 

classRecyclerView.LayoutManager

LayoutManager负责测量和定位项目视图RecyclerView,以及确定何时回收用户不再可见的项目视图的策略。 

classRecyclerView.LayoutParams

LayoutParams儿童的子类 RecyclerView。 

interfaceRecyclerView.OnChildAttachStateChangeListener

一个Listener接口,可以连接到RecylcerView,以便在ViewHolder连接到RecyclerView或从RecyclerView分离时得到通知。 

classRecyclerView.OnFlingListener

如果开发人员希望处理它,则此类定义fling的行为。 

interfaceRecyclerView.OnItemTouchListener

OnItemTouchListener允许应用程序在对RecyclerView自身的滚动行为考虑这些触摸事件之前拦截RecyclerView的视图层次结构级别的正在进行的触摸事件。 

classRecyclerView.OnScrollListener

可以将OnScrollListener添加到RecyclerView,以便在RecyclerView上发生滚动事件时接收消息。 

classRecyclerView.RecycledViewPool

RecycledViewPool允许您在多个RecyclerViews之间共享视图。 

classRecyclerView.Recycler

Recycler负责管理报废或分离的项目视图以供重复使用。 

interfaceRecyclerView.RecyclerListener

可以在RecyclerView上设置RecyclerListener,以便在视图被回收时接收消息。 

classRecyclerView.SimpleOnItemTouchListener

其实现RecyclerView.OnItemTouchListener具有空方法体和默认返回值。 

classRecyclerView.SmoothScroller

 

平滑滚动的基类。 

classRecyclerView.State

 

包含有关当前RecyclerView状态的有用信息,如目标滚动位置或视图焦点。 

classRecyclerView.ViewCacheExtension

ViewCacheExtension是一个帮助程序类,用于提供可由开发人员控制的附加视图缓存层。 

classRecyclerView.ViewHolder

ViewHolder描述了一个项目视图和有关其在RecyclerView中的位置的元数据。 

 

转载于:https://my.oschina.net/u/2358780/blog/3102075

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值