Как обрабатывать пространство между элементами 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.

Другие вопросы по тегам