Как обрабатывать пространство между элементами RecyclerCollectionComponent
У меня есть RecyclerCollectionComponent
где я предоставляю данные, используя DataDiffSection
, Теперь я хочу иметь некоторый запас (скажем, x dp) для первого и последнего элемента и некоторый запас среди предметов (скажем, y dp).
Мой onRender выглядит так:
@OnEvent(RenderEvent::class)
fun onRender(
c: ComponentContext,
@FromEvent model: SomeObject): RenderInfo {
return ComponentRenderInfo.create()
.component(MyAwesomeCoomponent
.create(c)
.someParam(param)
.build())
.build()
}
Это просто создает список предметов, расположенных рядом. Если я включу маржу в этот компонент, он даст одинаковую маржу для всех элементов, тогда как я хочу (x dp) поля для первого и последнего элемента и (y dp) маржу для промежуточных элементов.
Есть ли способ получить позицию элемента в обработчике события onRender?
1 ответ
Вы можете обернуть свой DataDiffSection с настроенным GroupSection, который разделяет компоненты заголовка и нижнего колонтитула?
@GroupSectionSpec
public class YourGroupSectionSpec {
@OnCreateChildren
static Children onCreateChildren(SectionContext c) {
return Children.create()
.child(SingleComponentSection.create(c).component(header)...)
.child(DataDiffSection.create(c)...)
.child(SingleComponentSection.create(c).component(footer)...)
.build();
}
}
Теперь вы можете настроить различные поля для компонентов header / footer / body.