when<T> static method

T when<T>(
  1. BoxConstraints constraints, {
  2. required T base(),
  3. T smBuilder()?,
  4. T mdBuilder()?,
  5. T lgBuilder()?,
  6. T xlBuilder()?,
  7. T xxlBuilder()?,
})

Returns a value depending on the current screen width.

The first matching breakpoint (from largest to smallest) is returned. If none match, base is used.

Example:

LayoutBuilder(
  builder: (context, constraints) {
    return ResponsiveBreakpoints.when(
      constraints,
      base: () => const Text("Base"),
      smBuilder: () => const Text("≥ Small"),
      mdBuilder: () => const Text("≥ Medium"),
      lgBuilder: () => const Text("≥ Large"),
      xlBuilder: () => const Text("≥ Extra Large"),
      xxlBuilder: () => const Text("≥ 2XL"),
    );
  },
);

Implementation

static T when<T>(
  BoxConstraints constraints, {
  required T Function() base,
  T Function()? smBuilder,
  T Function()? mdBuilder,
  T Function()? lgBuilder,
  T Function()? xlBuilder,
  T Function()? xxlBuilder,
}) {
  final w = constraints.maxWidth;
  if (w >= xxl && xxlBuilder != null) return xxlBuilder();
  if (w >= xl && xlBuilder != null) return xlBuilder();
  if (w >= lg && lgBuilder != null) return lgBuilder();
  if (w >= md && mdBuilder != null) return mdBuilder();
  if (w >= sm && smBuilder != null) return smBuilder();
  return base();
}