showPicker<T> static method

Future<T?> showPicker<T>({
  1. required List<Widget> children,
  2. ValueChanged<int>? onConfirm,
  3. VoidCallback? onCancel,
  4. Widget? cancel,
  5. Widget? confirm,
  6. bool useSafeArea = false,
  7. double itemExtent = _defaultItemExtent,
  8. int initialItem = 0,
  9. Widget selectionOverlay = const CupertinoPickerDefaultSelectionOverlay(),
})

显示选择器

Implementation

static Future<T?> showPicker<T>({
  required List<Widget> children,
  ValueChanged<int>? onConfirm,
  VoidCallback? onCancel,
  Widget? cancel,
  Widget? confirm,
  bool useSafeArea = false,
  double itemExtent = _defaultItemExtent,
  int initialItem = 0,
  Widget selectionOverlay = const CupertinoPickerDefaultSelectionOverlay(),
}) async {
  final context = ComContext.context;
  int selectIndex = initialItem;

  return await showModalBottomSheet(
    context: context,
    useSafeArea: useSafeArea,
    backgroundColor: Theme.of(context).dialogTheme.backgroundColor,
    builder: (BuildContext context) => SizedBox(
      height: _defaultDialogHeight,
      child: Column(
        children: [
          _buildPickerHeader(
            context: context,
            cancel: cancel,
            confirm: confirm,
            onCancel: onCancel,
            onConfirm: () {
              if (onConfirm != null) {
                onConfirm(selectIndex);
              }
              Navigator.of(context).pop();
            },
          ),
          SizedBox(
            height: _defaultPickerHeight,
            child: CupertinoPicker(
              backgroundColor: Colors.transparent,
              itemExtent: itemExtent,
              onSelectedItemChanged: (int index) {
                selectIndex = index;
              },
              selectionOverlay: selectionOverlay,
              scrollController: FixedExtentScrollController(
                initialItem: initialItem,
              ),
              children: children,
            ),
          ),
        ],
      ),
    ),
  );
}