Skip to content

在 ConcatAdapter 中,itemViewType获取错误导致的崩溃 #317

@limuyang2

Description

@limuyang2

在 ConcatAdapter 中,MultiTypeAdapter 通过

types.getType<Any>(viewHolder.itemViewType)

在某些情况下会导致崩溃,出现数组越界,因为获得的 viewHolder.itemViewType 并不稳定,不会与 getItemViewType()返回值一一对应。

必须将 ConcatAdapter 配置中的 isolateViewTypes 参数设置为false(其默认值为 true)。但是设置为false之后,就会导致 ConcatAdapter 中所有 子AdapterViewHolder公用一个池子,不进行内部隔离。那这种就需要使用者,手动保持 每一个子AdaptergetItemViewType()返回值的唯一性。

个人认为,ConcatAdapter 默认会进行 ViewHolder的 itemType 隔离,那可能内部对ItemViewType进行了某种操作

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions