createCupertinoWidget method

  1. @override
CupertinoButton createCupertinoWidget(
  1. BuildContext context
)
override

Implementation

@override
CupertinoButton createCupertinoWidget(BuildContext context) {
  final data = cupertino?.call(context, platform(context));

  // child is required non nullable
  assert(data?.icon != null || cupertinoIcon != null || icon != null);

  // If the IconButton is placed inside the AppBar, we need to have zero padding.
  final haveZeroPadding = PlatformProvider.of(context)
          ?.settings
          .iosUseZeroPaddingForAppbarPlatformIcon ??
      false;
  final isPlacedOnPlatformAppBar =
      ParentWidgetFinder.of<CupertinoNavigationBar>(context) != null;
  final overriddenPadding =
      haveZeroPadding && isPlacedOnPlatformAppBar ? EdgeInsets.zero : null;

  final givenPadding = data?.padding ?? padding ?? overriddenPadding;

  return CupertinoButton(
    key: data?.widgetKey ?? widgetKey,
    child: data?.icon ?? cupertinoIcon ?? icon!,
    onPressed: data?.onPressed ?? onPressed ?? null,
    padding: givenPadding,
    color: data?.color ?? color,
    borderRadius: data?.borderRadius ??
        const BorderRadius.all(const Radius.circular(8.0)),
    minSize: data?.minSize ?? _kMinInteractiveDimensionCupertino,
    pressedOpacity: data?.pressedOpacity ?? 0.4,
    disabledColor: data?.disabledColor ??
        disabledColor ??
        CupertinoColors.quaternarySystemFill,
    alignment: data?.alignment ?? Alignment.center,
  );
}