Responsive.builder constructor

Responsive.builder({
  1. ResponsiveBuilder? onMobile,
  2. ResponsiveBuilder? onTablet,
  3. ResponsiveBuilder? onDesktop,
  4. ResponsiveFormat? preferredTabletFormat,
})

Creates a Responsive Widget which returns either of the provided onMobile, onTablet or onDesktop Widgets based on the current ResponsiveFormat.

This builder constructor allows you to utilize a new builder scope. At least onMobile or onDesktop must be provided.

Implementation

Responsive.builder({
  ResponsiveBuilder? onMobile,
  ResponsiveBuilder? onTablet,
  ResponsiveBuilder? onDesktop,
  ResponsiveFormat? preferredTabletFormat,
}) {
  // inferring missing parameters
  final _responsiveTuple = _ResponsiveTuple<ResponsiveBuilder>(
    onMobile: onMobile,
    onTablet: onTablet,
    onDesktop: onDesktop,
    preferredTabletFormat: preferredTabletFormat,
  );

  // at this stage all three widgets types are not null
  _responsiveWidget = _ResponsiveWidget<dynamic>(
    onMobile: (BuildContext context, _) => _responsiveTuple.onMobile(context),
    onTablet: (BuildContext context, _) => _responsiveTuple.onTablet(context),
    onDesktop: (BuildContext context, _) =>
        _responsiveTuple.onDesktop(context),
    share: null,
  );
}