fromDynamic static method

JsonAnimatedSwitcherBuilder? fromDynamic(
  1. dynamic map, {
  2. JsonWidgetRegistry? registry,
})

Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "child": <JsonWidgetData>,
  "duration": <int; millis>,
  "layoutBuilder": <AnimatedCrossFadeBuilder>,
  "reverseDuration": <int; millis>,
  "switchInCurve": <Curve>,
  "switchOutCurve": <Curve>,
  "transitionBuilder": <AnimatedSwitcherTransitionBuilder>,
}

As a note, the JsonWidgetData, Curve, AnimatedCrossFadeBuilder and AnimatedSwitcherTransitionBuilder cannot be decoded via JSON. Instead, the only way to bind those values to the builder is to use a function or a variable reference via the JsonWidgetRegistry. Also the child property should be passed as arg, not as a child.

Implementation

static JsonAnimatedSwitcherBuilder? fromDynamic(
  dynamic map, {
  JsonWidgetRegistry? registry,
}) {
  JsonAnimatedSwitcherBuilder? result;

  if (map != null) {
    result = JsonAnimatedSwitcherBuilder(
      child: map['child'],
      duration: JsonClass.parseDurationFromMillis(
        map['duration'],
      )!,
      layoutBuilder:
          map['layoutBuilder'] ?? AnimatedSwitcher.defaultLayoutBuilder,
      reverseDuration: JsonClass.parseDurationFromMillis(
        map['reverseDuration'],
      ),
      switchInCurve: map['switchInCurve'] ?? Curves.linear,
      switchOutCurve: map['switchOutCurve'] ?? Curves.linear,
      transitionBuilder: map['transitionBuilder'] ??
          AnimatedSwitcher.defaultTransitionBuilder,
    );
  }

  return result;
}