我已经开始学习如何在我的项目中使用 Epoxy。我通过运行示例项目来学习这个库。一切都很好,直到我深入研究网格跨度设置。我发现自己对它的网格系统感到困惑。
正如您在示例应用程序中看到的,ViewHolders 可以分为 3 个部分。HeaderViewModel_
这些部分可以特别在模型中表示,例如ButtonBindingModel_
和CarouselModelGroup
。
而init RecyclerView的代码如下:
EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
根据官方文档:
如果使用 GridLayoutManager,这将自动将跨度计数与 EpoxyController 同步。
我发现HeaderViewModel_
并CarouselModelGroup
正确同步了跨度,但ButtonBindingModel_
不是。我一直在示例代码中搜索“span”或“grid”这个词,我只是想不通为什么ButtonBindingModel_
可以将其 span 设置为 1。
如果我将 RecyclerView 的跨度设置从 2 更改为 3:
EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
HeaderViewModel_
并且CarouselModelGroup
仍然保持同步整个跨度,但跨度ButtonBindingModel_
仍然是 1。
我想知道是否有一种方法可以将跨度设置ButtonBindingModel_
为全跨度,以及设置HeaderViewModel_
和CarouselModelGroup
特定跨度的方法,无论是通过代码(以编程方式)还是通过布局。请帮我解决这个问题,我很感激。