when<T> static method
T
when<T>(
- BoxConstraints constraints, {
- required T base(),
- T smBuilder()?,
- T mdBuilder()?,
- T lgBuilder()?,
- T xlBuilder()?,
- 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();
}