Picker constructor
- Key? key,
- double diameterRatio = _kDefaultDiameterRatio,
- Color backgroundColor = _kDefaultBackground,
- Color? lineColor = _kHighlighterBorder,
- double offAxisFraction = 0.0,
- bool useMagnifier = false,
- double magnification = 1.0,
- FixedExtentScrollController? scrollController,
- double squeeze = _kSqueeze,
- required double itemExtent,
- required ValueChanged<
int> onSelectedItemChanged, - required List<
Widget> children, - 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);