FDialog.adaptive constructor

FDialog.adaptive({
  1. required Widget horizontalBuilder(
    1. BuildContext context,
    2. FDialogStyle style
    ),
  2. required Widget verticalBuilder(
    1. BuildContext context,
    2. FDialogStyle style
    ),
  3. FDialogStyleDelta style = const .context(),
  4. Clip clipBehavior = .none,
  5. Animation<double>? animation,
  6. String? semanticsLabel,
  7. BoxConstraints constraints = const BoxConstraints(minWidth: 280, maxWidth: 560),
  8. bool resizeToAvoidInsets = true,
  9. Key? key,
})

Creates an adaptive FDialog that uses verticalBuilder on FBreakpoints.sm devices and horizontalBuilder on larger devices.

CLI

To generate a layout for this widget:

dart run forui snippet create adaptive-card

See https://forui.dev/docs/widgets/data/card for other generatable layouts.

Implementation

FDialog.adaptive({
  required Widget Function(BuildContext context, FDialogStyle style) horizontalBuilder,
  required Widget Function(BuildContext context, FDialogStyle style) verticalBuilder,
  this.style = const .context(),
  this.clipBehavior = .none,
  this.animation,
  this.semanticsLabel,
  this.constraints = const BoxConstraints(minWidth: 280, maxWidth: 560),
  this.resizeToAvoidInsets = true,
  super.key,
}) : builder = ((context, style) => switch (MediaQuery.sizeOf(context).width) {
       final width when width < context.theme.breakpoints.sm => verticalBuilder(context, style),
       _ => horizontalBuilder(context, style),
     });