public class ItemBridgeAdapter
extends Adapter
implements FacetProviderAdapter
java.lang.Object | ||
↳ | android.support.v7.widget.RecyclerView.Adapter | |
↳ | android.support.v17.leanback.widget.ItemBridgeAdapter |
桥从Presenter
到RecyclerView.Adapter
。 公开以允许第三方演示者使用。
Nested classes |
|
---|---|
class |
ItemBridgeAdapter.AdapterListener 监听ViewHolder操作的接口。 |
class |
ItemBridgeAdapter.ViewHolder ItemBridgeAdapter的ViewHolder。 |
class |
ItemBridgeAdapter.Wrapper 用于将Presenter创建的视图封装到另一个视图中的接口。 |
Public constructors |
|
---|---|
ItemBridgeAdapter(ObjectAdapter adapter, PresenterSelector presenterSelector) |
|
ItemBridgeAdapter(ObjectAdapter adapter) |
|
ItemBridgeAdapter() |
Protected methods |
|
---|---|
void |
onAddPresenter(Presenter presenter, int type) 当演示者添加到适配器时调用。 |
void |
onAttachedToWindow(ItemBridgeAdapter.ViewHolder viewHolder) 当ViewHolder已连接到窗口时调用。 |
void |
onBind(ItemBridgeAdapter.ViewHolder viewHolder) 当ViewHolder绑定到数据时调用。 |
void |
onCreate(ItemBridgeAdapter.ViewHolder viewHolder) ViewHolder创建时调用。 |
void |
onDetachedFromWindow(ItemBridgeAdapter.ViewHolder viewHolder) 当ViewHolder从窗口中分离时调用。 |
void |
onUnbind(ItemBridgeAdapter.ViewHolder viewHolder) 当ViewHolder从数据中解除绑定时调用。 |
Inherited methods |
|
---|---|
From class android.support.v7.widget.RecyclerView.Adapter
|
|
From class java.lang.Object
|
|
From interface android.support.v17.leanback.widget.FacetProviderAdapter
|
ItemBridgeAdapter (ObjectAdapter adapter, PresenterSelector presenterSelector)
Parameters | |
---|---|
adapter |
ObjectAdapter
|
presenterSelector |
PresenterSelector
|
ItemBridgeAdapter ()
void clear ()
清除适配器。
FacetProvider getFacetProvider (int type)
针对Adapter中的给定类型查询 FacetProvider
。
Parameters | |
---|---|
type |
int : type of the item. |
Returns | |
---|---|
FacetProvider |
Facet provider for the type. |
int getItemCount ()
返回适配器持有的数据集中的项目总数。
Returns | |
---|---|
int |
The total number of items in this adapter. |
long getItemId (int position)
以position
返回商品的稳定ID。 如果hasStableIds()
将返回false,则此方法应返回NO_ID
。 此方法的默认实现返回NO_ID
。
Parameters | |
---|---|
position |
int : Adapter position to query |
Returns | |
---|---|
long |
the stable ID of the item at position |
int getItemViewType (int position)
为了查看回收目的,返回 position
的项目视图类型。
此方法的默认实现返回0,假定适配器的单一视图类型。 与ListView适配器不同,类型不需要是连续的。 考虑使用id资源来唯一标识项目视图类型。
Parameters | |
---|---|
position |
int : position to query |
Returns | |
---|---|
int |
integer value identifying the type of the view needed to represent the item at position . Type codes need not be contiguous. |
ArrayList<Presenter> getPresenterMapper ()
返回演示者映射器数组。
Returns | |
---|---|
ArrayList<Presenter> |
ItemBridgeAdapter.Wrapper getWrapper ()
返回 ItemBridgeAdapter.Wrapper
。
Returns | |
---|---|
ItemBridgeAdapter.Wrapper |
void onBindViewHolder (RecyclerView.ViewHolder holder, int position)
由RecyclerView调用以在指定位置显示数据。 此方法应更新itemView
的内容以反映给定位置处的项目。
请注意,与ListView
不同,如果物品的位置在数据集中发生更改,RecyclerView将不会再次调用此方法,除非物品本身无效或无法确定新位置。 出于这个原因,您应该只使用position
参数,同时获取此方法中的相关数据项,并且不应保留其副本。 如果您稍后需要某个项目的位置(例如,在点击监听器中),请使用getAdapterPosition()
,它将具有更新的适配器位置。 如果适配器可以处理有效的部分绑定,则替代onBindViewHolder(ViewHolder, int, List)
。
Parameters | |
---|---|
holder |
RecyclerView.ViewHolder : The ViewHolder which should be updated to represent the contents of the item at the given position in the data set. |
position |
int : The position of the item within the adapter's data set. |
RecyclerView.ViewHolder onCreateViewHolder (ViewGroup parent, int viewType)
View.OnFocusChangeListener
中分配的 onCreateViewHolder(ViewGroup)
可能会被链接,此后用户不应再更改 View.OnFocusChangeListener
。
Parameters | |
---|---|
parent |
ViewGroup : The ViewGroup into which the new View will be added after it is bound to an adapter position. |
viewType |
int : The view type of the new View. |
Returns | |
---|---|
RecyclerView.ViewHolder |
A new ViewHolder that holds a View of the given view type. |
void onViewAttachedToWindow (RecyclerView.ViewHolder holder)
当此适配器创建的视图已附加到窗口时调用。
这可以用作视图即将被用户看到的合理信号。 如果适配器先前释放了onViewDetachedFromWindow
任何资源,则应在此恢复这些资源。
Parameters | |
---|---|
holder |
RecyclerView.ViewHolder : Holder of the view being attached |
void onViewDetachedFromWindow (RecyclerView.ViewHolder holder)
当此适配器创建的视图已从其窗口分离时调用。
脱离窗口不一定是永久的条件; 适配器视图的使用者可能会选择在屏幕不可见时缓存视图,并根据需要附加分离视图。
Parameters | |
---|---|
holder |
RecyclerView.ViewHolder : Holder of the view being detached |
void onViewRecycled (RecyclerView.ViewHolder holder)
当此适配器创建的视图已被回收时调用。
当RecyclerView.LayoutManager
确定不再需要将其附加到其父项RecyclerView
时,将回收视图。 这可能是因为它已经不在可见范围内,或者是由仍然附加到父RecyclerView的视图表示的一组缓存视图。 如果项目视图绑定了大量或昂贵的数据(如大型位图),则可能是释放这些资源的好地方。
RecyclerView在清除ViewHolder的内部数据并将其发送到RecycledViewPool之前调用此方法。 这样,如果ViewHolder在回收之前保存有效信息,则可以调用getAdapterPosition()
以获取其适配器位置。
Parameters | |
---|---|
holder |
RecyclerView.ViewHolder : The ViewHolder for the view being recycled |
void setAdapter (ObjectAdapter adapter)
设置 ObjectAdapter
。
Parameters | |
---|---|
adapter |
ObjectAdapter
|
void setAdapterListener (ItemBridgeAdapter.AdapterListener listener)
设置AdapterListener。
Parameters | |
---|---|
listener |
ItemBridgeAdapter.AdapterListener
|
void setPresenterMapper (ArrayList<Presenter> presenters)
设置演示者映射器数组。
Parameters | |
---|---|
presenters |
ArrayList
|
void setWrapper (ItemBridgeAdapter.Wrapper wrapper)
设置 ItemBridgeAdapter.Wrapper
。
Parameters | |
---|---|
wrapper |
ItemBridgeAdapter.Wrapper
|
void onAddPresenter (Presenter presenter, int type)
当演示者添加到适配器时调用。
Parameters | |
---|---|
presenter |
Presenter
|
type |
int
|
void onAttachedToWindow (ItemBridgeAdapter.ViewHolder viewHolder)
当ViewHolder已连接到窗口时调用。
Parameters | |
---|---|
viewHolder |
ItemBridgeAdapter.ViewHolder
|
void onBind (ItemBridgeAdapter.ViewHolder viewHolder)
当ViewHolder绑定到数据时调用。
Parameters | |
---|---|
viewHolder |
ItemBridgeAdapter.ViewHolder
|
void onCreate (ItemBridgeAdapter.ViewHolder viewHolder)
ViewHolder创建时调用。
Parameters | |
---|---|
viewHolder |
ItemBridgeAdapter.ViewHolder
|
void onDetachedFromWindow (ItemBridgeAdapter.ViewHolder viewHolder)
当ViewHolder从窗口中分离时调用。
Parameters | |
---|---|
viewHolder |
ItemBridgeAdapter.ViewHolder
|
void onUnbind (ItemBridgeAdapter.ViewHolder viewHolder)
当ViewHolder从数据中解除绑定时调用。
Parameters | |
---|---|
viewHolder |
ItemBridgeAdapter.ViewHolder
|