在 ConcatAdapter 中,MultiTypeAdapter 通过
types.getType<Any>(viewHolder.itemViewType)
在某些情况下会导致崩溃,出现数组越界,因为获得的 viewHolder.itemViewType 并不稳定,不会与 getItemViewType()返回值一一对应。
必须将 ConcatAdapter 配置中的 isolateViewTypes 参数设置为false(其默认值为 true)。但是设置为false之后,就会导致 ConcatAdapter 中所有 子Adapter 的 ViewHolder公用一个池子,不进行内部隔离。那这种就需要使用者,手动保持 每一个子Adapter中 getItemViewType()返回值的唯一性。
个人认为,ConcatAdapter 默认会进行 ViewHolder的 itemType 隔离,那可能内部对ItemViewType进行了某种操作