composite static method
CarpetStyle
composite(
- BuildContext context,
- Map<
double, CarpetStyle Function(BuildContext)> styles
Creates a composite CarpetStyle by selecting from a map of breakpoint-based styles.
The map keys represent maximum widths (in device pixels) for each style function. Styles are evaluated in ascending order of breakpoints, falling back to the last entry for larger screens. This method is ideal for responsive designs where layout complexity varies by screen size, integrating with Carpet for adaptive quilt generation.
Example usage in a Carpet widget:
CarpetStyle style = CarpetStyles.composite(context, {
600: (ctx) => CarpetStyles.strip(ctx),
1200: (ctx) => CarpetStyles.grid(ctx),
});
Implementation
static CarpetStyle composite(BuildContext context,
Map<double, CarpetStyle Function(BuildContext)> styles) {
double width = MediaQuery.of(context).size.width;
for (var entry in styles.entries) {
if (width <= entry.key) {
return entry.value(context);
}
}
return styles.values.last(context);
}