美文网首页
在使用BRVAH库基础上三步实现sticky header

在使用BRVAH库基础上三步实现sticky header

作者: s酸菜 | 来源:发表于2021-09-08 16:50 被阅读0次

sticky-layoutmanager

第一步:引入sticky-layoutmanager库

第二步:设置layoutManager

recyclerView.run {
            adapter = mAdapter
            layoutManager = StickyHeadersLinearLayoutManager<ContentAdapter>(requireContext())
        }

第三步:adapter 实现 StickyHeaders接口,isStickyHeader方法确定谁为header。

class ContentAdapter :BaseMultiItemQuickAdapter<XXXBean,BaseViewHolder>(),
    LoadMoreModule, StickyHeaders {
    init {
        addItemType(Header, R.layout.item_header)
        addItemType(Content, R.layout.item_content)
    }

    override fun getItemCount() = data.size
    override fun convert(holder: BaseViewHolder, item: XXXBean) {
        when (holder.itemViewType) {
            Header -> {
               ...
            }
            Content -> {
                ...
            }
        }
    }

    override fun isStickyHeader(position: Int): Boolean {
        return data[position].itemType == Header
    }
}

组装list

val groupBy = mutableListOf.groupBy { xxxBean: XXXBean ->
                    条件...
                }

groupBy.forEach { _, list ->
    val sticky= XXXBean(header)
    listData.add(sticky)
    listData.addAll(list)
}

相关文章

网友评论

      本文标题:在使用BRVAH库基础上三步实现sticky header

      本文链接:https://www.haomeiwen.com/subject/pmbvwltx.html