nextStep static method

({int itemScrolled, double nextScrollPosition})? nextStep({
  1. required M3ECarouselType type,
  2. required M3ECarouselHeroAlignment heroAlignment,
  3. required bool isExtended,
  4. required double uncontainedItemExtent,
  5. required List<int> layoutWeight,
  6. required double mainExtent,
  7. required int childrenLength,
  8. required int itemScrolled,
  9. required double prevScrollPosition,
  10. required int direction,
})

Computes the next scroll position and updated itemScrolled for one step.

Returns null when the step is out of bounds.

Implementation

static ({double nextScrollPosition, int itemScrolled})? nextStep({
  required M3ECarouselType type,
  required M3ECarouselHeroAlignment heroAlignment,
  required bool isExtended,
  required double uncontainedItemExtent,
  required List<int> layoutWeight,
  required double mainExtent,
  required int childrenLength,
  required int itemScrolled,
  required double prevScrollPosition,
  required int direction,
}) {
  return switch (type) {
    M3ECarouselType.hero => _heroStep(
      heroAlignment: heroAlignment,
      layoutWeight: layoutWeight,
      mainExtent: mainExtent,
      childrenLength: childrenLength,
      itemScrolled: itemScrolled,
      prevScrollPosition: prevScrollPosition,
      direction: direction,
    ),
    M3ECarouselType.contained => _containedStep(
      isExtended: isExtended,
      layoutWeight: layoutWeight,
      mainExtent: mainExtent,
      childrenLength: childrenLength,
      itemScrolled: itemScrolled,
      prevScrollPosition: prevScrollPosition,
      direction: direction,
    ),
    M3ECarouselType.uncontained => _uncontainedStep(
      uncontainedItemExtent: uncontainedItemExtent,
      childrenLength: childrenLength,
      itemScrolled: itemScrolled,
      prevScrollPosition: prevScrollPosition,
      direction: direction,
    ),
  };
}