某些时候RecyclerView
可能会有几种不同的内容呈现形式。比如相册应用中Album
以及Image
这两种不同的呈现形式,点击Album
可以查看其Images
。可能会出于某种考虑,欲将这两种内容用同一个Adapter
呈现。
假设Album
与Image
使用不同的ViewHolder
,那么当进入或退出Album
时,该怎么使之重新绑定对应的ViewHolder
呢?仅仅使用notifyDataSetChanged()
是无法强制重新绑定ViewHolder
的。此时,需要借助getItemViewType()
来实现之。当notifyDataSetChanged()
之后,某个position
对应的viewType
变了,则会重新绑定ViewHolder
。
因此,实现对应的getItemViewType()
,使两种情况下返回的viewType
不同即可。