我想使用android.arch.paging
组件在列表的标题。
通常,这很容易,只需为RecyclerView
适配器添加不同的类型即可处理并从包含标头的项目创建新列表。
但是,有了分页组件,我实际上是从PagedList
查询中将PositionalDataSource
和SQL
传递出去。是否可以中断此操作并添加标头类型?
答案 0 :(得分:1)
我最终如何为有兴趣的人解决这个问题。
在绑定我在上一项中传递的数据时,
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val item = getItem(position)
val previousItem = if (position == 0) null else getItem(position - 1)
holder.bind(item, previousItem)
}
然后每个视图都设置一个标题,只有在上一项没有相同的标题时,该标题才可见。
val previousHeader = previousItem?.name?.capitalize().first()
val header = item?.name?.capitalize()?.first()
view.cachedContactHeader.text = header
view.cachedContactHeader.isVisible = previousHeader != header