【发布时间】:2017-09-25 15:21:25
【问题描述】:
我还没有找到任何解释 View Type 是什么的东西,当有多个视图时,它必须用于区分要显示的视图,在这种情况下,可以使用传递给 onCreateViewHolder 的 viewType:
onCreateViewHolder(ViewGroup parent, int viewType)
虽然存在 getItemViewType 方法,但没有 setItemViewType 方法。
所以,看来 View Type 是由 Android 设置的,只有某些类型。
什么是本机类型及其值?我在 Android 的文档中找不到任何定义这些原生的东西。
如何定义各种视图,例如一个recyclerview 是否应该有红色背景?我创建了一个布尔值来标识应该以不同方式显示的对象,但由于 onCreateViewHolder 除了 ViewGroup 和 int 不接受任何内容,似乎没有办法做到这一点,但显然其他人可以做到。
我根本不懂视图类型,希望能得到一个很好的解释。例如,来自 Android API 指南的 getItemViewType 返回值:
“整数值,用于标识表示该位置项目所需的视图类型。类型代码不必连续。”
这到底是什么意思?我还没有找到任何解释它来自哪里或如何设置,或者即使它可以设置的东西。
【问题讨论】:
-
ViewType 允许您在 RecyclerView 中拥有不同类型的视图。搜索“具有多个视图类型的 RecyclerView”或类似的内容以获取示例
-
我现在明白了。它只是比大多数人花的时间长一点。我错误地认为 getItemViewType 只是返回所需的视图类型,而不是作为我需要编写以确定 viewType 应该是什么的方法。在可能的情况下,由存储对象中的标志设置的事件的优先级确定。
标签: android android-recyclerview