show static method

void show(
  1. BuildContext context, {
  2. required dynamic columns,
  3. String? cancelText,
  4. String? confirmText,
  5. String? title,
  6. Widget? titleWidget,
  7. Color? headerBackgroundColor,
  8. Color? backgroundColor,
  9. BorderRadiusGeometry? borderRadius,
  10. Color? cancelTextColor,
  11. Color? confirmTextColor,
  12. VoidCallback? onCancel,
  13. dynamic onConfirm(
    1. List<BetterPickerItem>
    )?,
  14. dynamic onChange(
    1. List<BetterPickerItem>,
    2. dynamic (
      1. dynamic columns
      )
    )?,
  15. VoidCallback? onClose,
  16. double? diameterRatio,
  17. double? itemHeight,
  18. Widget? overlayWidget,
})

Implementation

static void show(
  BuildContext context, {

  /// 选择器的列
  required var columns,

  /// 取消按钮的文本
  String? cancelText,

  /// 确认按钮的文本
  String? confirmText,

  /// 选择器的标题
  String? title,

  /// 选择器的标题组件
  Widget? titleWidget,

  /// 头部背景颜色
  Color? headerBackgroundColor,

  /// 选择器的背景颜色
  Color? backgroundColor,

  /// 选择器的圆角半径
  BorderRadiusGeometry? borderRadius,

  /// 取消按钮的文本颜色
  Color? cancelTextColor,

  /// 确认按钮的文本颜色
  Color? confirmTextColor,

  /// 取消回调
  VoidCallback? onCancel,

  /// 确认回调
  Function(List<BetterPickerItem>)? onConfirm,

  /// 改变回调
  Function(List<BetterPickerItem>, Function(dynamic columns))? onChange,

  /// 关闭回调
  VoidCallback? onClose,

  /// 选择器的直径比例
  double? diameterRatio,

  /// 选择器的高度
  double? itemHeight,

  /// 选择器的覆盖组件
  Widget? overlayWidget,
}) {
  itemHeight ??=
      BetterUtil.getThemeExtension(context)?.pickerTheme.itemHeight ?? 44.bw;

  showModalBottomSheet(
    context: context,
    backgroundColor: Colors.white,
    enableDrag: false,
    builder: (context) => PopScope(
      canPop: true,
      onPopInvokedWithResult: (didPop, result) {
        onClose?.call();
      },
      child: BetterPickerWidget(
        columns: columns,
        cancelText: cancelText,
        confirmText: confirmText,
        title: title,
        titleWidget: titleWidget,
        headerBackgroundColor: headerBackgroundColor,
        backgroundColor: backgroundColor,
        borderRadius: borderRadius,
        cancelTextColor: cancelTextColor,
        confirmTextColor: confirmTextColor,
        onCancel: onCancel,
        onConfirm: onConfirm,
        onChange: onChange,
        diameterRatio: diameterRatio,
        overlayWidget: overlayWidget,
        itemHeight: itemHeight,
      ),
    ),
  );
}