separated static method

Widget separated({
  1. Key? key,
  2. required IndexedWidgetBuilder itemBuilder,
  3. required IndexedWidgetBuilder separatorBuilder,
  4. required int itemCount,
  5. KSmoothScrollMode mode = KSmoothScrollMode.auto,
  6. KScrollIntensity intensity = KScrollIntensity.slow,
  7. SmoothScrollPhysics? customPhysics,
  8. bool addAutomaticKeepAlives = true,
  9. bool addRepaintBoundaries = true,
  10. bool addSemanticIndexes = true,
  11. double? cacheExtent,
  12. Clip clipBehavior = Clip.hardEdge,
  13. ScrollController? controller,
  14. DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  15. ChildIndexGetter? findItemIndexCallback,
  16. double? itemExtent,
  17. ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  18. EdgeInsetsGeometry? padding,
  19. ScrollPhysics? physics,
  20. bool? primary,
  21. Widget? prototypeItem,
  22. String? restorationId,
  23. bool reverse = false,
  24. Axis scrollDirection = Axis.vertical,
  25. int? semanticChildCount,
  26. bool shrinkWrap = false,
})

Separated constructor for lists with separators

Implementation

static Widget separated({
  Key? key,
  required IndexedWidgetBuilder itemBuilder,
  required IndexedWidgetBuilder separatorBuilder,
  required int itemCount,
  KSmoothScrollMode mode = KSmoothScrollMode.auto,
  KScrollIntensity intensity = KScrollIntensity.slow,
  SmoothScrollPhysics? customPhysics,
  bool addAutomaticKeepAlives = true,
  bool addRepaintBoundaries = true,
  bool addSemanticIndexes = true,
  double? cacheExtent,
  Clip clipBehavior = Clip.hardEdge,
  ScrollController? controller,
  DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  ChildIndexGetter? findItemIndexCallback,
  double? itemExtent,
  ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  EdgeInsetsGeometry? padding,
  ScrollPhysics? physics,
  bool? primary,
  Widget? prototypeItem,
  String? restorationId,
  bool reverse = false,
  Axis scrollDirection = Axis.vertical,
  int? semanticChildCount,
  bool shrinkWrap = false,
}) {
  final shouldApplySmooth = _shouldApplySmoothScrollStatic(mode);

  if (!shouldApplySmooth) {
    return ListView.separated(
      key: key,
      itemBuilder: itemBuilder,
      separatorBuilder: separatorBuilder,
      itemCount: itemCount,
      addAutomaticKeepAlives: addAutomaticKeepAlives,
      addRepaintBoundaries: addRepaintBoundaries,
      addSemanticIndexes: addSemanticIndexes,
      cacheExtent: cacheExtent,
      clipBehavior: clipBehavior,
      controller: controller,
      dragStartBehavior: dragStartBehavior,
      findItemIndexCallback: findItemIndexCallback,
      keyboardDismissBehavior: keyboardDismissBehavior,
      padding: padding,
      physics: physics,
      primary: primary,
      restorationId: restorationId,
      reverse: reverse,
      scrollDirection: scrollDirection,
      shrinkWrap: shrinkWrap,
    );
  }

  return _SmoothListViewSeparated(
    key: key,
    itemBuilder: itemBuilder,
    separatorBuilder: separatorBuilder,
    itemCount: itemCount,
    mode: mode,
    intensity: intensity,
    customPhysics: customPhysics,
    addAutomaticKeepAlives: addAutomaticKeepAlives,
    addRepaintBoundaries: addRepaintBoundaries,
    addSemanticIndexes: addSemanticIndexes,
    cacheExtent: cacheExtent,
    clipBehavior: clipBehavior,
    controller: controller,
    dragStartBehavior: dragStartBehavior,
    findItemIndexCallback: findItemIndexCallback,
    itemExtent: itemExtent,
    keyboardDismissBehavior: keyboardDismissBehavior,
    padding: padding,
    physics: physics,
    primary: primary,
    prototypeItem: prototypeItem,
    restorationId: restorationId,
    reverse: reverse,
    scrollDirection: scrollDirection,
    semanticChildCount: semanticChildCount,
    shrinkWrap: shrinkWrap,
  );
}