Recyclerview Show Different View Types
I'm using the recycleview to show a list. I was wondering how do we show different types of views? As in, different ViewHolders int the same adapter In the simple listview we used
Solution 1:
To create RecyclerView
with multiple view type just implement getItemViewType()
, two different ViewHolder
s and take care of the viewType
parameter in onCreateViewHolder()
and bindViewHolder()
.
Short example:
publicclassMultipleViewTypesAdapterextendsRecyclerView.Adapter<RecyclerView.ViewHolder> {
privatestaticfinalintVIEW_TYPE_FIRST=0;
privatestaticfinalintVIEW_TYPE_SECOND=1;
classViewHolderFirstextendsRecyclerView.ViewHolder {
...
}
classViewHolderSecondextendsRecyclerView.ViewHolder {
...
}
@OverrideintgetItemViewType(int position) {
return position % 2;
}
@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
switch (viewType) {
case VIEW_TYPE_FIRST: returnnewViewHolderFirst(...);
case VIEW_TYPE_SECOND: returnnewViewHolderSecond(...);
...
}
}
@OverridepublicvoidbindViewHolder(RecyclerView.ViewHolder holder, int position) {
switch (getItemViewType(position)) {
case VIEW_TYPE_FIRST:
ViewHolderFirstviewHolderFirst= (ViewHolderFirst)holder;
...
break;
case VIEW_TYPE_SECOND:
ViewHolderSecondviewHolderSecond= (ViewHolderSecond)holder;
...
break;
...
}
}
}
Post a Comment for "Recyclerview Show Different View Types"