美文网首页
RecyclerView 跟随指示器滑动

RecyclerView 跟随指示器滑动

作者: 咚咚_Coding | 来源:发表于2023-03-30 18:59 被阅读0次

效果

image.png

计算可滑动百分比

mRecyclerViewList?.addOnScrollListener(object : RecyclerView.OnScrollListener() {
        override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
            super.onScrolled(recyclerView, dx, dy)
            val totalWidth = itemWidth * (mAdapter?.data?.size?:0)
            val canScrollWidth = totalWidth - (context.getScreenWidth())
            offsetDx += dx
            onScrollListener?.invoke(offsetDx / canScrollWidth)
        }
    })

分页

fun processKingKongData(list: List<AdvertItem>?): MutableList<ArrayList<AdvertItem>> {
    if (list.isNullOrEmpty()) return mutableListOf()
    val total = list.size
    val newList = mutableListOf<ArrayList<AdvertItem>>()
    var lastGroupIndex = 0
    var arrayList = ArrayList<AdvertItem>()
    list.forEachIndexed { index, item ->
        val groupIndex = index / 5
        if (lastGroupIndex == groupIndex) {//同一页
            genMultiTypeItem(total, item, arrayList)
        } else {//不相等 开始分页
            newList.addAll(listOf(arrayList)) // 上一页 添加
            arrayList = ArrayList()
            lastGroupIndex = groupIndex
            genMultiTypeItem(total, item, arrayList)
        }
        if (total - 1 == index) {//last
            newList.addAll(listOf(arrayList))
        }
    }
    return newList
}

相关文章

网友评论

      本文标题:RecyclerView 跟随指示器滑动

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