【发布时间】:2019-04-14 14:14:11
【问题描述】:
我已经开始学习如何在我的项目中使用 Epoxy。我通过运行sample project 来学习这个库。一切都很好,直到我深入研究网格跨度设置。我发现自己对它的网格系统感到困惑。
正如您在示例应用程序中看到的,ViewHolders 可以分为 3 个部分。这些部分可以特别在模型中表示,例如HeaderViewModel_、ButtonBindingModel_ 和CarouselModelGroup。
而init RecyclerView的代码如下:
EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
根据官方文档:
如果使用 GridLayoutManager,这将自动同步 span 用 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 设置为特定跨度的方法,无论是通过代码(以编程方式)还是通过布局。请帮我解决这个问题,不胜感激。
【问题讨论】:
标签: android epoxy epoxy-modelview