【问题标题】:Android EpoxyRecyclerView - switching orientationAndroid EpoxyRecyclerView - 切换方向
【发布时间】:2020-02-08 18:08:27
【问题描述】:

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

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

这是我的 buildModels 函数:

override fun buildModels() {

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

        }
    }

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

}

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

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

如果 RecyclerView 设置为 match_parent 大小,则滚动 方向设置为垂直,setHasFixedSize 设置为 true。

如果高度设置为 wrap_content 则滚动方向为 设置为水平,并且 setClipToPadding 设置为 false 用于轮播 用法。

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

提前致谢。

【问题讨论】:

    标签: android android-recyclerview epoxy


    【解决方案1】:

    好的,我想通了!

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

    recyclerView.layoutManager = GridLayoutManager(context, 3)
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多