Timeline constructor

Timeline(
  1. {Key? key,
  2. Axis? scrollDirection,
  3. bool reverse = false,
  4. ScrollController? controller,
  5. bool? primary,
  6. ScrollPhysics? physics,
  7. bool shrinkWrap = false,
  8. EdgeInsetsGeometry? padding,
  9. double? itemExtent,
  10. bool addAutomaticKeepAlives = true,
  11. bool addRepaintBoundaries = true,
  12. bool addSemanticIndexes = true,
  13. double? cacheExtent,
  14. List<Widget> children = const <Widget>[],
  15. int? semanticChildCount,
  16. DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  17. ScrollViewKeyboardDismissBehavior keyboardDismissBehavior = ScrollViewKeyboardDismissBehavior.manual,
  18. String? restorationId,
  19. Clip clipBehavior = Clip.hardEdge,
  20. TimelineThemeData? theme}
)

Creates a scrollable, linear array of widgets from an explicit List.

This constructor is appropriate for timeline views with a small number of children because constructing the List requires doing work for every child that could possibly be displayed in the timeline view instead of just those children that are actually visible.

It is usually more efficient to create children on demand using Timeline.builder because it will create the widget children lazily as necessary.

The addAutomaticKeepAlives argument corresponds to the SliverChildListDelegate.addAutomaticKeepAlives property. The addRepaintBoundaries argument corresponds to the SliverChildListDelegate.addRepaintBoundaries property. The addSemanticIndexes argument corresponds to the SliverChildListDelegate.addSemanticIndexes property. None may be null.

Implementation

Timeline({
  Key? key,
  Axis? scrollDirection,
  bool reverse = false,
  ScrollController? controller,
  bool? primary,
  ScrollPhysics? physics,
  bool shrinkWrap = false,
  EdgeInsetsGeometry? padding,
  this.itemExtent,
  bool addAutomaticKeepAlives = true,
  bool addRepaintBoundaries = true,
  bool addSemanticIndexes = true,
  double? cacheExtent,
  List<Widget> children = const <Widget>[],
  int? semanticChildCount,
  DragStartBehavior dragStartBehavior = DragStartBehavior.start,
  ScrollViewKeyboardDismissBehavior keyboardDismissBehavior =
      ScrollViewKeyboardDismissBehavior.manual,
  String? restorationId,
  Clip clipBehavior = Clip.hardEdge,
  TimelineThemeData? theme,
})  : childrenDelegate = SliverChildListDelegate(
        children,
        addAutomaticKeepAlives: addAutomaticKeepAlives,
        addRepaintBoundaries: addRepaintBoundaries,
        addSemanticIndexes: addSemanticIndexes,
      ),
      assert(scrollDirection == null || theme == null,
          'Cannot provide both a scrollDirection and a theme.'),
      this.theme = theme,
      super(
        key: key,
        scrollDirection: scrollDirection ?? theme?.direction ?? Axis.vertical,
        reverse: reverse,
        controller: controller,
        primary: primary,
        physics: physics,
        shrinkWrap: shrinkWrap,
        padding: padding,
        cacheExtent: cacheExtent,
        semanticChildCount: semanticChildCount ?? children.length,
        dragStartBehavior: dragStartBehavior,
        keyboardDismissBehavior: keyboardDismissBehavior,
        restorationId: restorationId,
        clipBehavior: clipBehavior,
      );