scrollableBottomSheet function

void scrollableBottomSheet({
  1. List<Widget>? children,
  2. Widget? child,
  3. bool isDismissible = true,
  4. EdgeInsets padding = const EdgeInsets.all(20),
  5. bool expand = false,
  6. double maxChildSize = 1.0,
  7. double minChildSize = 0.4,
  8. VoidCallback? onDismiss,
})

Implementation

void scrollableBottomSheet({
  final List<Widget>? children,
  final Widget? child,
  final bool isDismissible = true,
  final EdgeInsets padding = const EdgeInsets.all(20),
  final bool expand = false,
  final double maxChildSize = 1.0,
  final double minChildSize = 0.4,
  final VoidCallback? onDismiss,
}) =>
    showModalBottomSheet(
      context: navigatorKey.currentContext!,
      builder: (final BuildContext context) =>
          Container(
            padding: padding,
            child: DraggableScrollableSheet(
              expand: expand,
              initialChildSize: minChildSize,
              maxChildSize: maxChildSize,
              minChildSize: minChildSize,
              builder: (final BuildContext _, final ScrollController c) =>
                  SingleChildScrollView(
                    controller: c,
                    child: child ??
                        Column(
                          children: children!,
                        ),
                  ),
            ),
          ),
      backgroundColor: Theme
          .of(navigatorKey.currentContext!)
          .colorScheme
          .surface,
      isDismissible: isDismissible,
      isScrollControlled: true,
    ).whenComplete(onDismiss ?? () {});