RecyclerView GridLayoutManager现实每行多列视图【Kotlin】

RecyclerView创建每行列数不一样或多列的视图 原文链接

实现类似效果:
         

screen-shot-2020-18-55 png

 

第一步:设置GridLayoutManager 每行几列

private val gridLayoutManager by lazy { GridLayoutManager(context, 2) }


这里设置的是每行分为2列,再使用 gridLayoutManager.setSpanSizeLookup() 去设置每个item数据要占的列数。
cc: 这里要注意要先配置好Adapter,否则setSpanSizeLookup方法不会被执行

recyclerView.apply {
                adapter = yourSelfDataAdapter
                gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
                    override fun getSpanSize(position: Int): Int {
                        //判断该position最后一项&&最后一项是单列,就填充整行(即一列)
                        if (position == sites.size - 1 && sites.size % 2 == 1) {
                            return 2 //该item填充占位2列
                        }
                        return 1 //该item填充占位1列
                    }
                }
                layoutManager = gridLayoutManager
            }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章