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.maybeParseDurationFromMillis(
        map['duration'],
      )!,
      layoutBuilder:
          map['layoutBuilder'] ?? AnimatedSwitcher.defaultLayoutBuilder,
      reverseDuration: JsonClass.maybeParseDurationFromMillis(
        map['reverseDuration'],
      ),
      switchInCurve: map['switchInCurve'] ?? Curves.linear,
      switchOutCurve: map['switchOutCurve'] ?? Curves.linear,
      transitionBuilder: map['transitionBuilder'] ??
          AnimatedSwitcher.defaultTransitionBuilder,
    );
  }

  return result;
}