美文网首页
在使用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