Picker constructor

Picker({
  1. Key? key,
  2. double diameterRatio = _kDefaultDiameterRatio,
  3. Color backgroundColor = _kDefaultBackground,
  4. Color? lineColor = _kHighlighterBorder,
  5. double offAxisFraction = 0.0,
  6. bool useMagnifier = false,
  7. double magnification = 1.0,
  8. FixedExtentScrollController? scrollController,
  9. double squeeze = _kSqueeze,
  10. required double itemExtent,
  11. required ValueChanged<int> onSelectedItemChanged,
  12. required List<Widget> children,
  13. bool looping = false,
})

Creates a picker from a concrete list of children.

The diameterRatio and itemExtent arguments must not be null. The itemExtent must be greater than zero.

The backgroundColor defaults to light gray. It can be set to null to disable the background painting entirely; this is mildly more efficient than using Colors.transparent. Also, if it has transparency, no gradient effect will be rendered.

The scrollController argument can be used to specify a custom FixedExtentScrollController for programmatically reading or changing the current picker index or for selecting an initial index value.

The looping argument decides whether the child list loops and can be scrolled infinitely. If set to true, scrolling past the end of the list will loop the list back to the beginning. If set to false, the list will stop scrolling when you reach the end or the beginning.

Implementation

Picker({
  Key? key,
  this.diameterRatio = _kDefaultDiameterRatio,
  this.backgroundColor = _kDefaultBackground,
  this.lineColor = _kHighlighterBorder,
  this.offAxisFraction = 0.0,
  this.useMagnifier = false,
  this.magnification = 1.0,
  this.scrollController,
  this.squeeze = _kSqueeze,
  required this.itemExtent,
  required this.onSelectedItemChanged,
  required List<Widget> children,
  bool looping = false,
})  : assert(diameterRatio > 0.0,
          RenderListWheelViewport.diameterRatioZeroMessage),
      assert(magnification > 0),
      assert(itemExtent > 0),
      assert(squeeze > 0),
      childDelegate = looping
          ? ListWheelChildLoopingListDelegate(children: children)
          : ListWheelChildListDelegate(children: children),
      super(key: key);