Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在airbnb环氧树脂中指定网格跨度?_Android_Epoxy_Epoxy Modelview - Fatal编程技术网

Android 如何在airbnb环氧树脂中指定网格跨度?

Android 如何在airbnb环氧树脂中指定网格跨度?,android,epoxy,epoxy-modelview,Android,Epoxy,Epoxy Modelview,我已经开始学习如何在我的项目中使用环氧树脂。我通过跑步来学习这个图书馆。在我深入研究网格跨度设置之前,一切都很好。我发现自己对它的网格系统感到困惑 正如您在示例应用程序中所看到的,ViewHolder可分为3个部分。这些部分尤其可以在模型中表示,例如HeadServiceWModel、ButtonBindingModel和CarouselModelGroup init RecyclerView的代码如下: EpoxyRecyclerView recyclerView = (EpoxyRecycl

我已经开始学习如何在我的项目中使用环氧树脂。我通过跑步来学习这个图书馆。在我深入研究网格跨度设置之前,一切都很好。我发现自己对它的网格系统感到困惑

正如您在示例应用程序中所看到的,ViewHolder可分为3个部分。这些部分尤其可以在模型中表示,例如HeadServiceWModel、ButtonBindingModel和CarouselModelGroup

init RecyclerView的代码如下:

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)
  }
}