Android 如何在airbnb环氧树脂中指定网格跨度?
我已经开始学习如何在我的项目中使用环氧树脂。我通过跑步来学习这个图书馆。在我深入研究网格跨度设置之前,一切都很好。我发现自己对它的网格系统感到困惑 正如您在示例应用程序中所看到的,ViewHolder可分为3个部分。这些部分尤其可以在模型中表示,例如HeadServiceWModel、ButtonBindingModel和CarouselModelGroup init RecyclerView的代码如下:Android 如何在airbnb环氧树脂中指定网格跨度?,android,epoxy,epoxy-modelview,Android,Epoxy,Epoxy Modelview,我已经开始学习如何在我的项目中使用环氧树脂。我通过跑步来学习这个图书馆。在我深入研究网格跨度设置之前,一切都很好。我发现自己对它的网格系统感到困惑 正如您在示例应用程序中所看到的,ViewHolder可分为3个部分。这些部分尤其可以在模型中表示,例如HeadServiceWModel、ButtonBindingModel和CarouselModelGroup init RecyclerView的代码如下: EpoxyRecyclerView recyclerView = (EpoxyRecycl
EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
根据官方文件:
如果使用GridLayoutManager,将自动同步跨度
使用EpoxyController进行计数
我发现HeadServiceWModel和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_uu和CarouselModelGroup仍然保持同步整个范围,但ButtonBindingModel_uu的范围仍然是1
我想知道是否有一种方法可以将ButtonBindingModel的跨度设置为完整跨度,以及将HeadServicewModel和CarouselModelGroup设置为特定跨度的方法,无论是通过编程方式还是通过布局。请帮我解决这个问题,我很感激。我们使用的一个方法是在模型基础上使用spanSizeOverride设置跨度。 我们有一些不同的模型,我们希望跨度为2比1,所以我们在它们上设置了覆盖
gridLayoutManager.spanSizeLookup = ourController.spanSizeLookup
...
collectionDescription {
id(DESCRIPTION_ID)
description(data.description ?: "")
spanSizeOverride { _, _, _ -> 2 }
}
data.productTemplates?.forEachIndexed { index, product ->
collectionProduct {
id("$PRODUCT_ID ${product.slug} $index")
product(product)
listener(listener)
}
}
我们使用的一个方法是使用spanSizeOverride在模型基础上设置跨度。 我们有一些不同的模型,我们希望跨度为2比1,所以我们在它们上设置了覆盖
gridLayoutManager.spanSizeLookup = ourController.spanSizeLookup
...
collectionDescription {
id(DESCRIPTION_ID)
description(data.description ?: "")
spanSizeOverride { _, _, _ -> 2 }
}
data.productTemplates?.forEachIndexed { index, product ->
collectionProduct {
id("$PRODUCT_ID ${product.slug} $index")
product(product)
listener(listener)
}
}