public class ItemBridgeAdapter extends RecyclerView.Adapter implements FacetProviderAdapter
Presenter
to RecyclerView.Adapter
. Public to allow use by third
party Presenters.Modifier and Type | Class and Description |
---|---|
static class |
ItemBridgeAdapter.AdapterListener
Interface for listening to ViewHolder operations.
|
class |
ItemBridgeAdapter.ViewHolder
ViewHolder for the ItemBridgeAdapter.
|
static class |
ItemBridgeAdapter.Wrapper
Interface for wrapping a view created by a Presenter into another view.
|
Constructor and Description |
---|
ItemBridgeAdapter() |
ItemBridgeAdapter(ObjectAdapter adapter) |
ItemBridgeAdapter(ObjectAdapter adapter,
PresenterSelector presenterSelector) |
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clears the adapter.
|
FacetProvider |
getFacetProvider(int type)
Queries
FacetProvider for a given type within Adapter. |
int |
getItemCount()
Returns the total number of items in the data set held by the adapter.
|
long |
getItemId(int position)
Return the stable ID for the item at
position . |
int |
getItemViewType(int position)
Return the view type of the item at
position for the purposes
of view recycling. |
ArrayList<Presenter> |
getPresenterMapper()
Returns the presenter mapper array.
|
ItemBridgeAdapter.Wrapper |
getWrapper()
Returns the
ItemBridgeAdapter.Wrapper . |
protected void |
onAddPresenter(Presenter presenter,
int type)
Called when presenter is added to Adapter.
|
protected void |
onAttachedToWindow(ItemBridgeAdapter.ViewHolder viewHolder)
Called when ViewHolder has been attached to window.
|
protected void |
onBind(ItemBridgeAdapter.ViewHolder viewHolder)
Called when ViewHolder has been bound to data.
|
void |
onBindViewHolder(RecyclerView.ViewHolder holder,
int position)
Called by RecyclerView to display the data at the specified position.
|
protected void |
onCreate(ItemBridgeAdapter.ViewHolder viewHolder)
Called when ViewHolder is created.
|
RecyclerView.ViewHolder |
onCreateViewHolder(ViewGroup parent,
int viewType)
View.OnFocusChangeListener that assigned in
Presenter.onCreateViewHolder(ViewGroup) may be chained, user should never change
View.OnFocusChangeListener after that. |
protected void |
onDetachedFromWindow(ItemBridgeAdapter.ViewHolder viewHolder)
Called when ViewHolder has been detached from window.
|
protected void |
onUnbind(ItemBridgeAdapter.ViewHolder viewHolder)
Called when ViewHolder has been unbound from data.
|
void |
onViewAttachedToWindow(RecyclerView.ViewHolder holder)
Called when a view created by this adapter has been attached to a window.
|
void |
onViewDetachedFromWindow(RecyclerView.ViewHolder holder)
Called when a view created by this adapter has been detached from its window.
|
void |
onViewRecycled(RecyclerView.ViewHolder holder)
Called when a view created by this adapter has been recycled.
|
void |
setAdapter(ObjectAdapter adapter)
Sets the
ObjectAdapter . |
void |
setAdapterListener(ItemBridgeAdapter.AdapterListener listener)
Sets the AdapterListener.
|
void |
setPresenterMapper(ArrayList<Presenter> presenters)
Sets the presenter mapper array.
|
void |
setWrapper(ItemBridgeAdapter.Wrapper wrapper)
Sets the
ItemBridgeAdapter.Wrapper . |
bindViewHolder, createViewHolder, hasObservers, hasStableIds, notifyDataSetChanged, notifyItemChanged, notifyItemChanged, notifyItemInserted, notifyItemMoved, notifyItemRangeChanged, notifyItemRangeChanged, notifyItemRangeInserted, notifyItemRangeRemoved, notifyItemRemoved, onAttachedToRecyclerView, onBindViewHolder, onDetachedFromRecyclerView, onFailedToRecycleView, registerAdapterDataObserver, setHasStableIds, unregisterAdapterDataObserver
public ItemBridgeAdapter(ObjectAdapter adapter, PresenterSelector presenterSelector)
public ItemBridgeAdapter(ObjectAdapter adapter)
public ItemBridgeAdapter()
public void setAdapter(ObjectAdapter adapter)
ObjectAdapter
.public void setWrapper(ItemBridgeAdapter.Wrapper wrapper)
ItemBridgeAdapter.Wrapper
.public ItemBridgeAdapter.Wrapper getWrapper()
ItemBridgeAdapter.Wrapper
.public void clear()
public void setPresenterMapper(ArrayList<Presenter> presenters)
public ArrayList<Presenter> getPresenterMapper()
public int getItemCount()
RecyclerView.Adapter
getItemCount
in class RecyclerView.Adapter
public int getItemViewType(int position)
RecyclerView.Adapter
position
for the purposes
of view recycling.
The default implementation of this method returns 0, making the assumption of a single view type for the adapter. Unlike ListView adapters, types need not be contiguous. Consider using id resources to uniquely identify item view types.
getItemViewType
in class RecyclerView.Adapter
position
- position to queryposition
. Type codes need not be contiguous.protected void onAddPresenter(Presenter presenter, int type)
protected void onCreate(ItemBridgeAdapter.ViewHolder viewHolder)
protected void onBind(ItemBridgeAdapter.ViewHolder viewHolder)
protected void onUnbind(ItemBridgeAdapter.ViewHolder viewHolder)
protected void onAttachedToWindow(ItemBridgeAdapter.ViewHolder viewHolder)
protected void onDetachedFromWindow(ItemBridgeAdapter.ViewHolder viewHolder)
public final RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
View.OnFocusChangeListener
that assigned in
Presenter.onCreateViewHolder(ViewGroup)
may be chained, user should never change
View.OnFocusChangeListener
after that.onCreateViewHolder
in class RecyclerView.Adapter
parent
- The ViewGroup into which the new View will be added after it is bound to
an adapter position.viewType
- The view type of the new View.RecyclerView.Adapter.getItemViewType(int)
,
#onBindViewHolder(ViewHolder, int)
public void setAdapterListener(ItemBridgeAdapter.AdapterListener listener)
public final void onBindViewHolder(RecyclerView.ViewHolder holder, int position)
RecyclerView.Adapter
RecyclerView.ViewHolder.itemView
to reflect the item at the given
position.
Note that unlike ListView
, RecyclerView will not call this method
again if the position of the item changes in the data set unless the item itself is
invalidated or the new position cannot be determined. For this reason, you should only
use the position
parameter while acquiring the related data item inside
this method and should not keep a copy of it. If you need the position of an item later
on (e.g. in a click listener), use RecyclerView.ViewHolder.getAdapterPosition()
which will
have the updated adapter position.
Override #onBindViewHolder(ViewHolder, int, List)
instead if Adapter can
handle efficient partial bind.
onBindViewHolder
in class RecyclerView.Adapter
holder
- The ViewHolder which should be updated to represent the contents of the
item at the given position in the data set.position
- The position of the item within the adapter's data set.public final void onViewRecycled(RecyclerView.ViewHolder holder)
RecyclerView.Adapter
A view is recycled when a RecyclerView.LayoutManager
decides that it no longer
needs to be attached to its parent RecyclerView
. This can be because it has
fallen out of visibility or a set of cached views represented by views still
attached to the parent RecyclerView. If an item view has large or expensive data
bound to it such as large bitmaps, this may be a good place to release those
resources.
RecyclerView calls this method right before clearing ViewHolder's internal data and
sending it to RecycledViewPool. This way, if ViewHolder was holding valid information
before being recycled, you can call RecyclerView.ViewHolder.getAdapterPosition()
to get
its adapter position.
onViewRecycled
in class RecyclerView.Adapter
holder
- The ViewHolder for the view being recycledpublic final void onViewAttachedToWindow(RecyclerView.ViewHolder holder)
RecyclerView.Adapter
This can be used as a reasonable signal that the view is about to be seen
by the user. If the adapter previously freed any resources in
onViewDetachedFromWindow
those resources should be restored here.
onViewAttachedToWindow
in class RecyclerView.Adapter
holder
- Holder of the view being attachedpublic final void onViewDetachedFromWindow(RecyclerView.ViewHolder holder)
RecyclerView.Adapter
Becoming detached from the window is not necessarily a permanent condition; the consumer of an Adapter's views may choose to cache views offscreen while they are not visible, attaching and detaching them as appropriate.
onViewDetachedFromWindow
in class RecyclerView.Adapter
holder
- Holder of the view being detachedpublic long getItemId(int position)
RecyclerView.Adapter
position
. If RecyclerView.Adapter.hasStableIds()
would return false this method should return RecyclerView.NO_ID
. The default implementation
of this method returns RecyclerView.NO_ID
.getItemId
in class RecyclerView.Adapter
position
- Adapter position to querypublic FacetProvider getFacetProvider(int type)
FacetProviderAdapter
FacetProvider
for a given type within Adapter.getFacetProvider
in interface FacetProviderAdapter
type
- type of the item.