createState method

  1. @override
State<StatefulWidget> createState()
override

Creates the mutable state for this widget at a given location in the tree.

Subclasses should override this method to return a newly created instance of their associated State subclass:

@override
State<SomeWidget> createState() => _SomeWidgetState();

The framework can call this method multiple times over the lifetime of a StatefulWidget. For example, if the widget is inserted into the tree in multiple locations, the framework will create a separate State object for each location. Similarly, if the widget is removed from the tree and later inserted into the tree again, the framework will call createState again to create a fresh State object, simplifying the lifecycle of State objects.

Implementation

@override
State<StatefulWidget> createState() { // ignore: no_logic_in_create_state, https://github.com/flutter/flutter/issues/70499
  // The `time` mode and `dateAndTime` mode of the picker share the time
  // columns, so they are placed together to one state.
  // The `date` mode has different children and is implemented in a different
  // state.
  switch (mode) {
    case CupertinoDatePickerMode.time:
    case CupertinoDatePickerMode.dateAndTime:
      return _CupertinoDatePickerDateTimeState();
    case CupertinoDatePickerMode.date:
      return _CupertinoDatePickerDateState(dateOrder: dateOrder);
    case CupertinoDatePickerMode.monthYear:
      return _CupertinoDatePickerMonthYearState(dateOrder: dateOrder);
  }
}