Android EpoxyRecyclerView - 切换方向

Android EpoxyRecyclerView - switching orientation

我正在尝试使用 Epoxy 构建以下布局结构:

前三个布局来自 EpoxyAModel。 第四个来自EpoxyBModel。

这是我的 buildModels 函数:

override fun buildModels() {

    aModels.forEach { //this happens 3 times
        modelA {
            id("someID")
            (...)

        }
    }

    modelB {
        id("someID2")
        (...)
    }

}

通过此设置,我得到以下结果:

这是可以理解的,因为 EpoxyRecyclerView 的文档说:

If the RecyclerView is set to match_parent size then the scrolling orientation is set to vertical and setHasFixedSize is set to true.

If the height is set to wrap_content then the scrolling orientation is set to horizontal, and setClipToPadding is set to false for carousel usage.

我的问题是:是否有可能获得预期的效果,或者我是否必须定义另一个 EpoxyRecyclerView 和控制器?

提前致谢。

好的,我明白了!

首先,我们需要给EpoxyRecyclerView分配一个GridLayoutManager

recyclerView.layoutManager = GridLayoutManager(context, 3)

然后,在 EpoxyBModel 中,我们需要覆盖 getSpanSize 方法来告诉布局管理器这个元素和整行项目一样大:

override fun getSpanSize(totalSpanCount: Int, position: Int, itemCount: Int): Int = 3