我正试图用环氧树脂构建以下布局结构:
前三个布局来自EpoxyAModel。 第四个来自EpoxyB模型。
这是我的buildModels函数:
override fun buildModels() { aModels.forEach { //this happens 3 times modelA { id("someID") (...) } } modelB { id("someID2") (...) } }
通过此设置,我得到了以下结果:
这是可以理解的,因为 EpoxyRecyclerView 说:
EpoxyRecyclerView
如果RecyclerView设置为match_parent大小,则滚动 方向设置为垂直,setHasFixedSize设置为true。 如果高度设置为wrap_content,则滚动方向为 设置为水平,转盘的setClipToPadding设置为false 使用。
如果RecyclerView设置为match_parent大小,则滚动 方向设置为垂直,setHasFixedSize设置为true。
如果高度设置为wrap_content,则滚动方向为 设置为水平,转盘的setClipToPadding设置为false 使用。
我的问题是:是否有可能达到预期的效果,还是我必须定义另一个 环氧树脂回收机查看 和控制器?
环氧树脂回收机查看
提前感谢。
好吧,我想通了!
首先,我们需要分配一个 GridLayoutManager 到 EpoxyRecyclerView :
GridLayoutManager
recyclerView.layoutManager = GridLayoutManager(context, 3)
然后,在 EpoxyBModel 我们需要推翻 getSpanSize 方法告诉布局管理器此元素与整行项目一样大:
EpoxyBModel
getSpanSize
override fun getSpanSize(totalSpanCount: Int, position: Int, itemCount: Int): Int = 3