Called by MultiTypeAdapter to display the data with its view holder. This method should
update the contents of the
ViewHolder#itemView to reflect the given item.
If you need the position of an item later on (e.g. in a click listener), use
ViewHolder#getAdapterPosition() which will have the updated adapter position.
Partial bind vs full bind:
The payloads parameter is a merge list from
MultiTypeAdapter#notifyItemChanged(int,Object)
MultiTypeAdapter#notifyItemRangeChanged(int,int,Object).
If the payloads list is not empty, the ViewHolder is currently bound to old data and
ItemViewBinder may run an efficient partial update using the payload info.
If the payload is empty, ItemViewBinder must run a full bind.
ItemViewBinder should not assume that the payload passed in notify methods will be
received by onBindViewHolder(). For example when the view is not attached to the screen,
the payload in notifyItemChange() will be simply dropped.
This implementation calls the
onBindViewHolder(ViewHolder, Object) by default.