RecyclerView創建每行列數不一樣或多列的視圖 原文鏈接
實現類似效果:
第一步:設置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
}