public final class RecyclerView.Recycler
extends Object
java.lang.Object | |
↳ | android.support.v7.widget.RecyclerView.Recycler |
回收站负责管理报废或分离的物料视图以供重复使用。
“已报废”视图是仍然附加到其父级RecyclerView的视图,但已标记为要删除或重新使用。
RecyclerView.LayoutManager
对Recycler的典型用法是获取代表给定位置或项目ID处数据的适配器数据集的视图。 如果要重用的视图被认为是“脏的”,那么适配器将被要求重新绑定它。 如果没有,该视图可以被LayoutManager快速重用,而无需进一步的工作。 没有重新测量,可以通过LayoutManager重新定位没有requested layout
清洁视图。
Public constructors |
|
---|---|
RecyclerView.Recycler() |
Public methods |
|
---|---|
void |
bindViewToPosition(View view, int position) 将给定的视图绑定到该位置。 |
void |
clear() 清除此回收商的废料视图。 |
int |
convertPreLayoutPositionToPostLayout(int position) RecyclerView提供预布局状态下的人工位置范围(项目计数),并在 |
List<RecyclerView.ViewHolder> |
getScrapList() 返回当前位于废料列表中的不可修改的ViewHolders列表。 |
View |
getViewForPosition(int position) 获取为给定位置初始化的视图。 |
void |
recycleView(View view) 回收分离的视图。 |
void |
setViewCacheSize(int viewCount) 设置我们应保留以供将来使用的分离的有效视图的最大数量。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
RecyclerView.Recycler ()
void bindViewToPosition (View view, int position)
将给定的视图绑定到该位置。 该视图可以是以前通过getViewForPosition(int)
检索的视图或由onCreateViewHolder(ViewGroup, int)
创建的onCreateViewHolder(ViewGroup, int)
。
通常,LayoutManager应通过getViewForPosition(int)
获取其视图,并让RecyclerView处理缓存。 这是LayoutManager想要处理自己的回收逻辑的帮助方法。
请注意, getViewForPosition(int)
已将视图绑定到位置,因此除非要将此视图绑定到另一个位置,否则不需要调用此方法。
Parameters | |
---|---|
view |
View : The view to update. |
position |
int : The position of the item to bind to this View. |
void clear ()
清除此回收商的废料视图。 包含在回收视图池中的分离视图将保留。
int convertPreLayoutPositionToPostLayout (int position)
RecyclerView提供布局前布局状态下的人工位置范围(项目数),并在 getViewForPosition(int)
或 bindViewToPosition(View, int)
时自动将这些位置映射到 RecyclerView.Adapter
位置。
通常情况下,LayoutManager不需要担心这一点。 但是,在某些情况下,LayoutManager可能需要调用某个具有项目位置的自定义组件,在这种情况下,您需要实际的适配器位置而不是预布局位置。 您可以使用此方法将预布置位置转换为适配器(后布局)位置。
请注意,如果提供的位置属于已删除的ViewHolder,则此方法将返回-1。
在布置后状态中调用此方法会返回相同的值。
Parameters | |
---|---|
position |
int : The pre-layout position to convert. Must be greater or equal to 0 and less than getItemCount() . |
Returns | |
---|---|
int |
List<RecyclerView.ViewHolder> getScrapList ()
返回当前位于废料列表中的不可修改的ViewHolders列表。
Returns | |
---|---|
List<RecyclerView.ViewHolder> |
List of ViewHolders in the scrap list. |
View getViewForPosition (int position)
获取为给定位置初始化的视图。 应该使用RecyclerView.LayoutManager
实现来使用此方法来获取视图,以表示来自RecyclerView.Adapter
数据。
如果可用于正确的视图类型,则Recycler可以重用共享池中的废料视图或分离视图。 如果适配器未指示给定位置的数据已更改,则Recycler将尝试返回之前为该数据初始化的废料视图,而不重新绑定。
Parameters | |
---|---|
position |
int : Position to obtain a view for |
Returns | |
---|---|
View |
A view representing the data at position from adapter |
void recycleView (View view)
回收分离的视图。 指定的视图将被添加到视图池中,供以后重新绑定和重用。
视图必须完全分离(从父视图中移除)才能被回收。 如果视图被废弃,它将从废料清单中删除。
Parameters | |
---|---|
view |
View : Removed view for recycling |
void setViewCacheSize (int viewCount)
设置我们应保留以供将来使用的分离的有效视图的最大数量。
Parameters | |
---|---|
viewCount |
int : Number of views to keep before sending views to the shared pool |