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
}