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
            }

 

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